Amadeus for Developers.postman_collection.json•892 kB
{
"info": {
"_postman_id": "27471449-d2ca-a8c4-1399-6b0cfbddd079",
"name": "Amadeus for Developers",
"description": "Welcome to the Amadeus for Developers collection. This collection features a list of [Amadeus Self-Service APIs](https://developers.amadeus.com/self-service), categorized for your convenience and learning.\n\nThe Self-Service catalog is divided into six categories:\n\n- [<b>Flight APIs</b>](https://developers.amadeus.com/self-service/category/flights) (flight search, flight booking and airport information)\n- [<b>Destination Experiences APIs</b>](https://developers.amadeus.com/self-service/category/destination-experiences) (tours and activities, tourist attractions and safety data)\n- [<b>Cars and Transfers APIs</b>](https://developers.amadeus.com/self-service/category/cars-and-transfers) (transfer search, booking and management)\n- [<b>Market Insights</b>](https://developers.amadeus.com/self-service/category/market-insights) (most booked and traveled destinations, plus location scores)\n- [<b>Hotel APIs</b>](https://developers.amadeus.com/self-service/category/hotels) (hotel search, booking and ratings)\n- [<b>Itinerary Management APIs</b>](https://developers.amadeus.com/self-service/category/itinerary-management) (trip-planning functionalities)\n \n\n## 🛟 Help and support\n\nIf you have any questions of Amadeus Self-Service APIs, please have a look at [Amadeus for Developers Documentation](https://developers.amadeus.com/self-service/apis-docs/guides/developer-guides/) or check out our [discord channel ](https://discord.gg/cVrFBqx) to join the community!",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "11853298",
"_collection_link": "https://www.postman.com/amadeus4dev/amadeus-for-developers-s-public-workspace/collection/kquqijj/amadeus-for-developers?action=share&source=collection_link&creator=11853298"
},
"item": [
{
"name": "Authorization",
"item": [
{
"name": "Access Granted Client Credentials",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"An access token is returned\", () => {",
" pm.expect(pm.response.json()).to.have.property('access_token')",
" // Set the collection-scope \"token\" variable to the token received from the API",
" // This lets us use it in other requests",
" pm.environment.set('access_token', pm.response.json().access_token)",
"})",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "client_id",
"value": "{{client_id}}",
"type": "text"
},
{
"key": "client_secret",
"value": "{{client_secret}}",
"type": "text"
},
{
"key": "grant_type",
"value": "client_credentials",
"type": "text"
}
]
},
"url": {
"raw": "https://test.api.amadeus.com/v1/security/oauth2/token",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"security",
"oauth2",
"token"
]
},
"description": "To request an access token you need to send a POST request with the following body parameters to the authorization server: \n- \"grant_type\" with the value \"client_credentials\"\n- \"client_id\" with your API Key.\n- \"client_secret\" with your API Secret."
},
"response": []
},
{
"name": "Get Token Information",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test",
"pm.test(\"The access token is retrieved\", () => {",
" pm.expect(pm.response.json()).to.have.property('access_token')",
" // Set the collection-scope \"token\" variable to the token received from the API",
" // This lets us use it in other requests",
" pm.environment.set('access_token', pm.response.json().access_token)",
"})",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/security/oauth2/token/{{access_token}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"security",
"oauth2",
"token",
"{{access_token}}"
]
},
"description": "Retrieves information about an existing token. The token is passed as URL parameter, for example:\n\n[https://test.api.amadeus.com/v1/security/oauth2/token/AbCdEfGHI123456](https://test.api.amadeus.com/v1/security/oauth2/token/AbCdEfGHI123456)"
},
"response": []
}
],
"description": "OAuth uses access tokens for accessing APIs. A token represents a permission granted to a client to access some protected resources. The method to acquire a token is called grant.\n\nThere are different types of OAuth grants. Amadeus for Developers uses the Client Credentials Grant.",
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Flights",
"item": [
{
"name": "(Scenario)Basic Flight Booking flow",
"item": [
{
"name": "Step 0: Authorization",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var data = pm.response.json();",
"pm.environment.set(\"access_token\", data.access_token);"
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "noauth"
},
"method": "POST",
"header": [],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "client_id",
"value": "{{client_id}}",
"type": "text"
},
{
"key": "client_secret",
"value": "{{client_secret}}",
"type": "text"
},
{
"key": "grant_type",
"value": "client_credentials",
"type": "text"
}
]
},
"url": {
"raw": "https://test.api.amadeus.com/v1/security/oauth2/token",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"security",
"oauth2",
"token"
]
},
"description": "To request an access token you need to send a POST request with the following body parameters to the authorization server: \n- \"grant_type\" with the value \"client_credentials\"\n- \"client_id\" with your API Key.\n- \"client_secret\" with your API Secret."
},
"response": []
},
{
"name": "Step 1: Flight Offers Search GET",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// set 'flightOffer_data' variable",
"let response = pm.response.json();",
"pm.collectionVariables.set(\"flightOfferData\", JSON.stringify(response.data[0]));",
"",
"",
"// display visualisation",
"var template = `",
"<span style=\"font-weight: bold;\">Total number of offers : {{response.meta.count}}</span>",
"<table>",
" {{#each response.data}}",
" <tr>",
" <td>Offer id : {{id}}</td>",
" <td>Source : {{source}}</td>",
" <td style=\"font-weight: bold;\">Total price : {{price.total}} {{price.currency}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Segment</th>",
" <th>Flight number</th>",
" <th>Departure Time</th>",
" <th>Arrival Time</th>",
" </tr>",
" {{#each itineraries}}",
" {{#each segments}}",
" <tr>",
" <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>",
" <td>{{carrierCode}} {{number}}</td>",
" <td>{{departure.at}}</td>",
" <td>{{arrival.at}}</td>",
" </tr>",
" {{/each}}",
" {{/each}}",
" <table>",
" {{#each travelerPricings}}",
" <tr>",
" <td>",
" Traveler {{travelerId}}-{{travelerType}}</br>",
" Amount : {{price.total}} {{price.currency}} </br>",
" {{#each price.margins}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}}",
" {{#each price.discounts}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}} ",
" </td>",
" </tr> ",
" {{/each}}",
" <table>",
" </tr>",
" <hr />",
" {{/each}}",
"</table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});"
],
"type": "text/javascript",
"packages": {}
}
},
{
"listen": "prerequest",
"script": {
"exec": [
"const moment = require('moment');",
"const today = moment(); ",
"",
"var todayDate = today.format('YYYY-MM-DD'); ",
"pm.collectionVariables.set(\"todayDate\", todayDate); ",
"",
"// 'departureDate' environment variable set to be today + 14 days ",
"var twoWeeksLater = moment().add(14, 'days'); ",
"pm.collectionVariables.set(\"departureDate\", twoWeeksLater.format('YYYY-MM-DD'));",
"",
"// 'returnDate' environment variable set to be today + 28 days",
"var aMonthLater = moment().add(28, 'days');",
"pm.collectionVariables.set(\"returnDate\", aMonthLater.format('YYYY-MM-DD'));"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=PAR&destinationLocationCode=ICN&departureDate={{departureDate}}&returnDate={{returnDate}}&adults=2&max=5",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"shopping",
"flight-offers"
],
"query": [
{
"key": "originLocationCode",
"value": "PAR"
},
{
"key": "destinationLocationCode",
"value": "ICN"
},
{
"key": "departureDate",
"value": "{{departureDate}}"
},
{
"key": "returnDate",
"value": "{{returnDate}}"
},
{
"key": "adults",
"value": "2"
},
{
"key": "includedAirlineCodes",
"value": "TG",
"disabled": true
},
{
"key": "max",
"value": "5"
}
]
},
"description": "The Flight Offers Search API allows to get cheapest flight recommendations and prices on a given journey. It provides a list of flight recommendations and fares from a given origin (city or airport), for a given date (or date range) and for a given list of passengers. Additional information such as bag allowance, first ancillary bag prices or fare details are also provided."
},
"response": []
},
{
"name": "Step 2: Flight Offers Price",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// extract 'flightOfferPrice_data' environment variable",
"pm.collectionVariables.set(\"flightOfferPriceData\", JSON.stringify(pm.response.json().data.flightOffers[0]));",
"",
"// display visualisation",
"var template = `",
" <table bgcolor=\"#FFFFFF\">",
" {{#each response.data.flightOffers}}",
" <tr>",
" <td>offer id : {{id}}</td>",
" <td>Source : {{source}}</td>",
" <td style=\"font-weight: bold;\">Total amount : {{price.total}} {{price.currency}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Segment</th>",
" <th>Flight number</th>",
" <th>Departure Time</th>",
" <th>Arrival Time</th>",
" </tr>",
" {{#each itineraries}}",
" {{#each segments}}",
" <tr>",
" <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>",
" <td>{{carrierCode}} {{number}}</td>",
" <td>{{departure.at}}</td>",
" <td>{{arrival.at}}</td>",
" </tr>",
" {{/each}}",
" {{/each}}",
" <table>",
" {{#each travelerPricings}}",
" <tr>",
" <td>",
" Traveler {{travelerId}}-{{travelerType}}</br>",
" Amount : {{price.total}} {{price.currency}} </br>",
" {{#each price.margins}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}}",
" {{#each price.discounts}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}} ",
" </td>",
" </tr> ",
" {{/each}}",
" </table> ",
" </tr>",
" <hr />",
" {{/each}}",
" </table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});",
"",
"",
"// display visualisation",
"var template = `",
" <table bgcolor=\"#FFFFFF\">",
" {{#each response.data.flightOffers}}",
" <tr>",
" <td>offer id : {{id}}</td>",
" <td>Source : {{source}}</td>",
" <td style=\"font-weight: bold;\">Total amount : {{price.total}} {{price.currency}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Segment</th>",
" <th>Flight number</th>",
" <th>Departure Time</th>",
" <th>Arrival Time</th>",
" </tr>",
" {{#each itineraries}}",
" {{#each segments}}",
" <tr>",
" <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>",
" <td>{{carrierCode}} {{number}}</td>",
" <td>{{departure.at}}</td>",
" <td>{{arrival.at}}</td>",
" </tr>",
" {{/each}}",
" {{/each}}",
" <table>",
" {{#each travelerPricings}}",
" <tr>",
" <td>",
" Traveler {{travelerId}}-{{travelerType}}</br>",
" Amount : {{price.total}} {{price.currency}} </br>",
" {{#each price.margins}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}}",
" {{#each price.discounts}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}} ",
" </td>",
" </tr> ",
" {{/each}}",
" </table> ",
" </tr>",
" <hr />",
" {{/each}}",
" </table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {{flightOfferData}}\n ]\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/pricing",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-offers",
"pricing"
]
},
"description": "The Flight Offers Price REST/JSON API is an open price API that enables you to get or confirm the price of a flight and obtain information about taxes and fees to be applied to the entire journey."
},
"response": []
},
{
"name": "Step 3: Flight Create Orders",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// extract 'flightOrderId' environment variable",
"let response = pm.response.json();",
"pm.collectionVariables.set(\"flightOrderId\", response.data.id);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"flightOffers\": [\n {{flightOfferPriceData}}\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"gender\": \"MALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"documents\": [\n {\n \"documentType\": \"PASSPORT\",\n \"birthPlace\": \"Madrid\",\n \"issuanceLocation\": \"Madrid\",\n \"issuanceDate\": \"2015-04-14\",\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"validityCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"holder\": true\n }\n ]\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO\",\n \"lastName\": \"RODRIGUEZ\"\n },\n \"companyName\": \"INCREIBLE VIAJES\",\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"emailAddress\": \"support@increibleviajes.es\",\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"cityName\": \"Madrid\",\n \"countryCode\": \"ES\"\n }\n }\n ]\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/flight-orders",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"flight-orders"
]
},
"description": "The Flight Create Orders is an API to book flights and ancillary services proposed by the airlines like additional checked bags or seats with extra-legroom. It returns flight order unique ID and details."
},
"response": []
}
]
},
{
"name": "Flight Booking",
"item": [
{
"name": "Flight Offers Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code and data type",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test(\"flight-offers is returned\", function () {",
" var data = pm.response.json();",
" pm.expect(data.data[0].type).to.equal('flight-offer');",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
"",
"// extract 'flightOffer_data' into collection variable",
"let response = pm.response.json();",
"pm.collectionVariables.set('flightOfferData', JSON.stringify(response.data[0]))",
"",
"// display visualisation",
"var template = `",
"<span style=\"font-weight: bold;\">Total number of offers : {{response.meta.count}}</span>",
"<table>",
" {{#each response.data}}",
" <tr>",
" <td>Offer id : {{id}}</td>",
" <td>Source : {{source}}</td>",
" <td style=\"font-weight: bold;\">Total price : {{price.total}} {{price.currency}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Segment</th>",
" <th>Flight number</th>",
" <th>Departure Time</th>",
" <th>Arrival Time</th>",
" </tr>",
" {{#each itineraries}}",
" {{#each segments}}",
" <tr>",
" <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>",
" <td>{{carrierCode}} {{number}}</td>",
" <td>{{departure.at}}</td>",
" <td>{{arrival.at}}</td>",
" </tr>",
" {{/each}}",
" {{/each}}",
" <table>",
" {{#each travelerPricings}}",
" <tr>",
" <td>",
" Traveler {{travelerId}}-{{travelerType}}</br>",
" Amount : {{price.total}} {{price.currency}} </br>",
" {{#each price.margins}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}}",
" {{#each price.discounts}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}} ",
" </td>",
" </tr> ",
" {{/each}}",
" <table>",
" </tr>",
" <hr />",
" {{/each}}",
"</table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});"
],
"type": "text/javascript",
"packages": {}
}
},
{
"listen": "prerequest",
"script": {
"exec": [
"const moment = require('moment');",
"const today = moment();",
"",
"var todayDate = today.format('YYYY-MM-DD');",
"pm.collectionVariables.set(\"todayDate\", todayDate);",
"",
"// 'departureDate' environment variable set to be today + 14 days ",
"var twoWeeksLater = moment().add(14, 'days');",
"pm.collectionVariables.set(\"departureDate\", twoWeeksLater.format('YYYY-MM-DD'));",
"",
"// 'returnDate' environment variable set to be today + 28 days",
"var aMonthLater = moment().add(28, 'days');",
"pm.collectionVariables.set(\"returnDate\", aMonthLater.format('YYYY-MM-DD'));"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&departureDate={{departureDate}}&returnDate={{returnDate}}&adults=2&max=5",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"shopping",
"flight-offers"
],
"query": [
{
"key": "originLocationCode",
"value": "SYD"
},
{
"key": "destinationLocationCode",
"value": "BKK"
},
{
"key": "departureDate",
"value": "{{departureDate}}"
},
{
"key": "returnDate",
"value": "{{returnDate}}"
},
{
"key": "adults",
"value": "2"
},
{
"key": "includedAirlineCodes",
"value": "TG",
"disabled": true
},
{
"key": "max",
"value": "5"
}
]
},
"description": "The Flight Offers Search API allows to get cheapest flight recommendations and prices on a given journey. It provides a list of flight recommendations and fares from a given origin (city or airport), for a given date (or date range) and for a given list of passengers. Additional information such as bag allowance, first ancillary bag prices or fare details are also provided."
},
"response": [
{
"name": "Flight Offers Search",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&adults=2&max=5&departureDate=2024-07-16&returnDate=2024-07-30",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"shopping",
"flight-offers"
],
"query": [
{
"key": "originLocationCode",
"value": "SYD"
},
{
"key": "destinationLocationCode",
"value": "BKK"
},
{
"key": "adults",
"value": "2"
},
{
"key": "includedAirlineCodes",
"value": "TG",
"disabled": true
},
{
"key": "max",
"value": "5"
},
{
"key": "departureDate",
"value": "2024-07-16"
},
{
"key": "returnDate",
"value": "2024-07-30"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Thu, 21 Mar 2024 13:53:23 GMT"
},
{
"key": "Content-Type",
"value": "application/vnd.amadeus+json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Ama-Internal-Message-Version",
"value": "14.1"
},
{
"key": "Ama-Request-Id",
"value": "0001WWTZGAPAKR"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Ama-Gateway-Request-Id",
"value": "rrt-0c11c5408edc0aed5-a-de-8823-316619317-1"
},
{
"key": "Access-Control-Allow-Headers",
"value": "origin, x-requested-with, accept, Content-Type, Authorization"
},
{
"key": "Access-Control-Max-Age",
"value": "3628800"
},
{
"key": "Access-Control-Allow-Methods",
"value": "*"
},
{
"key": "Server",
"value": "Amadeus"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"meta\": {\n \"count\": 5,\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&adults=2&max=5&departureDate=2024-07-16&returnDate=2024-07-30\"\n }\n },\n \"data\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-07-16\",\n \"lastTicketingDateTime\": \"2024-07-16\",\n \"numberOfBookableSeats\": 3,\n \"itineraries\": [\n {\n \"duration\": \"PT14H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T11:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T16:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"212\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T19:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-16T21:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"732\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H30M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT16H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T13:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T18:00:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"731\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H30M\",\n \"id\": \"9\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T22:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T09:45:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"211\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H35M\",\n \"id\": \"10\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1002.64\",\n \"base\": \"606.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1002.64\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"PR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"501.32\",\n \"base\": \"303.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"9\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"10\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"501.32\",\n \"base\": \"303.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"9\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"10\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"2\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-07-16\",\n \"lastTicketingDateTime\": \"2024-07-16\",\n \"numberOfBookableSeats\": 3,\n \"itineraries\": [\n {\n \"duration\": \"PT14H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T11:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T16:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"212\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T19:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-16T21:50:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"732\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H30M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT28H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T01:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T05:45:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"741\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT3H15M\",\n \"id\": \"11\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MNL\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T22:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T09:45:00\"\n },\n \"carrierCode\": \"PR\",\n \"number\": \"211\",\n \"aircraft\": {\n \"code\": \"333\"\n },\n \"operating\": {\n \"carrierCode\": \"PR\"\n },\n \"duration\": \"PT8H35M\",\n \"id\": \"12\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1062.64\",\n \"base\": \"666.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1062.64\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"PR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"531.32\",\n \"base\": \"333.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"11\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"12\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"531.32\",\n \"base\": \"333.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TBAU\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"11\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"12\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EBAU\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"3\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-22\",\n \"lastTicketingDateTime\": \"2024-03-22\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT16H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T03:10:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"13\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT8H25M\",\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T08:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-17T09:50:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"624\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT21H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T10:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T14:15:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"625\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T02:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T11:35:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"2\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1106.76\",\n \"base\": \"724.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1106.76\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"SQ\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"4\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-22\",\n \"lastTicketingDateTime\": \"2024-03-22\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT20H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T03:10:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"13\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT8H25M\",\n \"id\": \"7\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T13:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-17T14:40:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"604\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"8\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT21H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T10:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T14:15:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"625\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T02:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T11:35:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"2\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1106.76\",\n \"base\": \"724.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1106.76\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"SQ\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"5\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-22\",\n \"lastTicketingDateTime\": \"2024-03-22\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT23H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-16T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T03:10:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"13\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT8H25M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-17T15:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-17T16:45:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"610\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H20M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT21H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BKK\",\n \"at\": \"2024-07-30T10:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-30T14:15:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"625\",\n \"aircraft\": {\n \"code\": \"32Q\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"SIN\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T02:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"SYD\",\n \"terminal\": \"1\",\n \"at\": \"2024-07-31T11:35:00\"\n },\n \"carrierCode\": \"TR\",\n \"number\": \"2\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"TR\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1106.76\",\n \"base\": \"724.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1106.76\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"SQ\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"553.38\",\n \"base\": \"362.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"O2TR24\",\n \"class\": \"O\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"N2TR24\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"X2TR24\",\n \"class\": \"X\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"dictionaries\": {\n \"locations\": {\n \"BKK\": {\n \"cityCode\": \"BKK\",\n \"countryCode\": \"TH\"\n },\n \"SIN\": {\n \"cityCode\": \"SIN\",\n \"countryCode\": \"SG\"\n },\n \"MNL\": {\n \"cityCode\": \"MNL\",\n \"countryCode\": \"PH\"\n },\n \"SYD\": {\n \"cityCode\": \"SYD\",\n \"countryCode\": \"AU\"\n }\n },\n \"aircraft\": {\n \"321\": \"AIRBUS A321\",\n \"333\": \"AIRBUS A330-300\",\n \"789\": \"BOEING 787-9\",\n \"32Q\": \"AIRBUS A321NEO\"\n },\n \"currencies\": {\n \"EUR\": \"EURO\"\n },\n \"carriers\": {\n \"PR\": \"PHILIPPINE AIRLINES\",\n \"TR\": \"SCOOT\"\n }\n }\n}"
}
]
},
{
"name": "Flight Offers Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code and data type",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test(\"flight-offers is returned\", function () {",
" var data = pm.response.json();",
" pm.expect(data.data[0].type).to.equal('flight-offer');",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
"",
"// extract 'flightOffer_data' environment variable",
"let response = pm.response.json();",
"pm.collectionVariables.set(\"flightOfferData\", JSON.stringify(response.data[0]));",
"",
"// display visualisation",
"var template = `",
"<span style=\"font-weight: bold;\">Total number of offers : {{response.meta.count}}</span>",
"<table>",
" {{#each response.data}}",
" <tr>",
" <td>Offer id : {{id}}</td>",
" <td>Source : {{source}}</td>",
" <td style=\"font-weight: bold;\">Total price : {{price.total}} {{price.currency}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Segment</th>",
" <th>Flight number</th>",
" <th>Departure Time</th>",
" <th>Arrival Time</th>",
" </tr>",
" {{#each itineraries}}",
" {{#each segments}}",
" <tr>",
" <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>",
" <td>{{carrierCode}} {{number}}</td>",
" <td>{{departure.at}}</td>",
" <td>{{arrival.at}}</td>",
" </tr>",
" {{/each}}",
" {{/each}}",
" <table>",
" {{#each travelerPricings}}",
" <tr>",
" <td>",
" Traveler {{travelerId}}-{{travelerType}}</br>",
" Amount : {{price.total}} {{price.currency}} </br>",
" {{#each price.margins}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}}",
" {{#each price.discounts}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}} ",
" </td>",
" </tr> ",
" {{/each}}",
" <table>",
" </tr>",
" <hr />",
" {{/each}}",
"</table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"currencyCode\": \"USD\",\n \"originDestinations\": [\n {\n \"id\": \"1\",\n \"originLocationCode\": \"BOS\",\n \"destinationLocationCode\": \"MAD\",\n \"departureDateTimeRange\": {\n \"date\": \"{{departureDate}}\",\n \"time\": \"10:00:00\"\n }\n },\n {\n \"id\": \"2\",\n \"originLocationCode\": \"MAD\",\n \"destinationLocationCode\": \"BOS\",\n \"departureDateTimeRange\": {\n \"date\": \"{{returnDate}}\",\n \"time\": \"17:00:00\"\n }\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"travelerType\": \"ADULT\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n },\n {\n \"id\": \"2\",\n \"travelerType\": \"CHILD\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n }\n ],\n \"sources\": [\n \"GDS\"\n ],\n \"searchCriteria\": {\n \"maxFlightOffers\": 2,\n \"flightFilters\": {\n \"cabinRestrictions\": [\n {\n \"cabin\": \"BUSINESS\",\n \"coverage\": \"MOST_SEGMENTS\",\n \"originDestinationIds\": [\n \"1\"\n ]\n }\n ],\n \"carrierRestrictions\": {\n \"excludedCarrierCodes\": [\n \"AA\",\n \"TP\",\n \"AZ\"\n ]\n }\n }\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v2/shopping/flight-offers",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"shopping",
"flight-offers"
]
},
"description": "The Flight Offers Search API allows to get cheapest flight recommendations and prices on a given journey. It provides a list of flight recommendations and fares from a given origin (city or airport), for a given date (or date range) and for a given list of passengers. Additional information such as bag allowance, first ancillary bag prices or fare details are also provided."
},
"response": [
{
"name": "Flight Offers Search",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"currencyCode\": \"USD\",\n \"originDestinations\": [\n {\n \"id\": \"1\",\n \"originLocationCode\": \"BOS\",\n \"destinationLocationCode\": \"MAD\",\n \"departureDateTimeRange\": {\n \"date\": \"2024-04-04\",\n \"time\": \"10:00:00\"\n }\n },\n {\n \"id\": \"2\",\n \"originLocationCode\": \"MAD\",\n \"destinationLocationCode\": \"BOS\",\n \"departureDateTimeRange\": {\n \"date\": \"2024-04-18\",\n \"time\": \"17:00:00\"\n }\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"travelerType\": \"ADULT\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n },\n {\n \"id\": \"2\",\n \"travelerType\": \"CHILD\",\n \"fareOptions\": [\n \"STANDARD\"\n ]\n }\n ],\n \"sources\": [\n \"GDS\"\n ],\n \"searchCriteria\": {\n \"maxFlightOffers\": 2,\n \"flightFilters\": {\n \"cabinRestrictions\": [\n {\n \"cabin\": \"BUSINESS\",\n \"coverage\": \"MOST_SEGMENTS\",\n \"originDestinationIds\": [\n \"1\"\n ]\n }\n ],\n \"carrierRestrictions\": {\n \"excludedCarrierCodes\": [\n \"AA\",\n \"TP\",\n \"AZ\"\n ]\n }\n }\n }\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://test.api.amadeus.com/v2/shopping/flight-offers",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"shopping",
"flight-offers"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Thu, 21 Mar 2024 13:54:24 GMT"
},
{
"key": "Content-Type",
"value": "application/vnd.amadeus+json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Ama-Internal-Message-Version",
"value": "14.1"
},
{
"key": "Ama-Request-Id",
"value": "0001WWUQGAPAMC"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Ama-Gateway-Request-Id",
"value": "rrt-0c11c5408edc0aed5-a-de-8823-316619317-2"
},
{
"key": "Access-Control-Allow-Headers",
"value": "origin, x-requested-with, accept, Content-Type, Authorization"
},
{
"key": "Access-Control-Max-Age",
"value": "3628800"
},
{
"key": "Access-Control-Allow-Methods",
"value": "*"
},
{
"key": "Server",
"value": "Amadeus"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"meta\": {\n \"count\": 2\n },\n \"data\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"lastTicketingDateTime\": \"2024-03-21\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT7H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-04T17:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-05T06:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"6166\",\n \"aircraft\": {\n \"code\": \"330\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT7H\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT29H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-18T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-18T22:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"7467\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-19T17:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-19T19:50:00\"\n },\n \"carrierCode\": \"AY\",\n \"number\": \"5503\",\n \"aircraft\": {\n \"code\": \"781\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6502.20\",\n \"base\": \"3898.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"6502.20\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\"\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\"\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"2\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"lastTicketingDateTime\": \"2024-03-21\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT11H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"B\",\n \"at\": \"2024-04-04T16:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"YYZ\",\n \"terminal\": \"1\",\n \"at\": \"2024-04-04T18:43:00\"\n },\n \"carrierCode\": \"AC\",\n \"number\": \"8699\",\n \"aircraft\": {\n \"code\": \"E75\"\n },\n \"duration\": \"PT2H3M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"YYZ\",\n \"terminal\": \"1\",\n \"at\": \"2024-04-04T20:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2024-04-05T10:20:00\"\n },\n \"carrierCode\": \"AC\",\n \"number\": \"824\",\n \"aircraft\": {\n \"code\": \"788\"\n },\n \"operating\": {\n \"carrierCode\": \"AC\"\n },\n \"duration\": \"PT7H25M\",\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT23H23M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T21:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BRU\",\n \"at\": \"2024-04-18T23:25:00\"\n },\n \"carrierCode\": \"SN\",\n \"number\": \"3730\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"SN\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"BRU\",\n \"at\": \"2024-04-19T10:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"YUL\",\n \"at\": \"2024-04-19T11:30:00\"\n },\n \"carrierCode\": \"SN\",\n \"number\": \"9551\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"AC\"\n },\n \"duration\": \"PT7H30M\",\n \"id\": \"7\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"YUL\",\n \"at\": \"2024-04-19T13:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"B\",\n \"at\": \"2024-04-19T14:38:00\"\n },\n \"carrierCode\": \"SN\",\n \"number\": \"9617\",\n \"aircraft\": {\n \"code\": \"E75\"\n },\n \"duration\": \"PT1H28M\",\n \"id\": \"8\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6846.40\",\n \"base\": \"4180.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"6846.40\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AC\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3423.20\",\n \"base\": \"2090.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3423.20\",\n \"base\": \"2090.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX49ENC\",\n \"brandedFare\": \"EXECLOW\",\n \"brandedFareLabel\": \"BUSINESS LOWEST\",\n \"class\": \"Z\",\n \"amenities\": [\n {\n \"description\": \"COMPLIMENTARY MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"BASIC SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CHANGEABLE TICKET\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREMIUM SEAT\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KKX76NCT\",\n \"brandedFare\": \"ECOSTAND\",\n \"brandedFareLabel\": \"ECO STANDARD\",\n \"class\": \"K\",\n \"amenities\": [\n {\n \"description\": \"CATERING ON EUROPE FLTS\",\n \"isChargeable\": true,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"CATERING ON INTERCONT FLTS\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"STANDARD SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MILEAGE ACCRUAL\",\n \"isChargeable\": false,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"UPGRADE ELIGIBILITY\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PREFERRED SEAT RESERVATION\",\n \"isChargeable\": true,\n \"amenityType\": \"BRANDED_FARES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"INFLIGHT ENTERTAINMENT\",\n \"isChargeable\": false,\n \"amenityType\": \"ENTERTAINMENT\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n }\n ]\n }\n ]\n }\n ],\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"YUL\": {\n \"cityCode\": \"YMQ\",\n \"countryCode\": \"CA\"\n },\n \"BRU\": {\n \"cityCode\": \"BRU\",\n \"countryCode\": \"BE\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n },\n \"LHR\": {\n \"cityCode\": \"LON\",\n \"countryCode\": \"GB\"\n },\n \"YYZ\": {\n \"cityCode\": \"YTO\",\n \"countryCode\": \"CA\"\n }\n },\n \"aircraft\": {\n \"319\": \"AIRBUS A319\",\n \"330\": \"AIRBUS INDUSTRIE A330\",\n \"781\": \"BOEING 787-10\",\n \"788\": \"BOEING 787-8\",\n \"E75\": \"EMBRAER 175\",\n \"77W\": \"BOEING 777-300ER\"\n },\n \"currencies\": {\n \"USD\": \"US DOLLAR\"\n },\n \"carriers\": {\n \"AC\": \"AIR CANADA\",\n \"AY\": \"FINNAIR\",\n \"IB\": \"IBERIA\",\n \"SN\": \"BRUSSELS AIRLINES\",\n \"BA\": \"BRITISH AIRWAYS\"\n }\n }\n}"
}
]
},
{
"name": "Flight Offers Price",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or No fare applicable\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" // extract 'flightOfferPrice_data' into collection variable",
" pm.collectionVariables.set(\"flightOfferPriceData\", JSON.stringify(data.data.flightOffers[0]));",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].detail).to.equal(\"No fare applicable\");",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"// Function to get header value by name",
"function getHeaderValue(headerName) {",
" let headers = pm.response.headers;",
" let header = headers.get(headerName);",
" return header ? header : 'Header not found';",
"}",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"console.log(\"Ama-Request-Id: \" + getHeaderValue('Ama-Request-Id'));",
"",
"// display visualisation",
"var template = `",
" <table bgcolor=\"#FFFFFF\">",
" {{#each response.data.flightOffers}}",
" <tr>",
" <td>offer id : {{id}}</td>",
" <td>Source : {{source}}</td>",
" <td style=\"font-weight: bold;\">Total amount : {{price.total}} {{price.currency}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Segment</th>",
" <th>Flight number</th>",
" <th>Departure Time</th>",
" <th>Arrival Time</th>",
" </tr>",
" {{#each itineraries}}",
" {{#each segments}}",
" <tr>",
" <td>{{departure.iataCode}}-{{arrival.iataCode}}</td>",
" <td>{{carrierCode}} {{number}}</td>",
" <td>{{departure.at}}</td>",
" <td>{{arrival.at}}</td>",
" </tr>",
" {{/each}}",
" {{/each}}",
" <table>",
" {{#each travelerPricings}}",
" <tr>",
" <td>",
" Traveler {{travelerId}}-{{travelerType}}</br>",
" Amount : {{price.total}} {{price.currency}} </br>",
" {{#each price.margins}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}}",
" {{#each price.discounts}}",
" <span style=\"font-weight: bold;color:red\">{{name}} : {{amount}} {{price.currency}}</span></br>",
" {{/each}} ",
" </td>",
" </tr> ",
" {{/each}}",
" </table> ",
" </tr>",
" <hr />",
" {{/each}}",
" </table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {{flightOfferData}}\n ]\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/pricing",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-offers",
"pricing"
]
},
"description": "The Flight Offers Price REST/JSON API is an open price API that enables you to get or confirm the price of a flight and obtain information about taxes and fees to be applied to the entire journey."
},
"response": [
{
"name": "Flight Offers Price",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"lastTicketingDateTime\": \"2024-03-21\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT7H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-04T17:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-05T06:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"6166\",\n \"aircraft\": {\n \"code\": \"330\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT7H\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n },\n {\n \"duration\": \"PT29H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-18T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-18T22:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"7467\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-19T17:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-19T19:50:00\"\n },\n \"carrierCode\": \"AY\",\n \"number\": \"5503\",\n \"aircraft\": {\n \"code\": \"781\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6502.20\",\n \"base\": \"3898.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"6502.20\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"brandedFareLabel\": \"BUSINESS OPTIMA\",\n \"class\": \"I\",\n \"amenities\": [\n {\n \"description\": \"THIRD CHECKED BAG\",\n \"isChargeable\": true,\n \"amenityType\": \"BAGGAGE\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"MEAL\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"SNACK OR DRINK\",\n \"isChargeable\": false,\n \"amenityType\": \"MEAL\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY CHECK IN\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"WIFI CONNECTION\",\n \"isChargeable\": true,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n },\n {\n \"description\": \"PRIORITY BOARDING GROUP 1\",\n \"isChargeable\": false,\n \"amenityType\": \"TRAVEL_SERVICES\",\n \"amenityProvider\": {\n \"name\": \"BrandedFare\"\n }\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"class\": \"J\"\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"class\": \"L\"\n }\n ]\n }\n ]\n }\n ]\n }\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/pricing",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-offers",
"pricing"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Thu, 21 Mar 2024 13:55:07 GMT"
},
{
"key": "Content-Type",
"value": "application/vnd.amadeus+json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Ama-Internal-Message-Version",
"value": "14.1"
},
{
"key": "Ama-Request-Id",
"value": "0001WWVAAAPANU"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Ama-Gateway-Request-Id",
"value": "rrt-0c11c5408edc0aed5-a-de-8823-316619317-3"
},
{
"key": "Access-Control-Allow-Headers",
"value": "origin, x-requested-with, accept, Content-Type, Authorization"
},
{
"key": "Access-Control-Max-Age",
"value": "3628800"
},
{
"key": "Access-Control-Allow-Methods",
"value": "*"
},
{
"key": "Server",
"value": "Amadeus"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"data\": {\n \"type\": \"flight-offers-pricing\",\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"paymentCardRequired\": false,\n \"lastTicketingDate\": \"2024-03-21\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-04T17:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-05T06:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"6166\",\n \"aircraft\": {\n \"code\": \"330\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT7H\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 594,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2024-04-18T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-18T22:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"7467\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 116,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"LHR\",\n \"terminal\": \"5\",\n \"at\": \"2024-04-19T17:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-19T19:50:00\"\n },\n \"carrierCode\": \"AY\",\n \"number\": \"5503\",\n \"aircraft\": {\n \"code\": \"781\"\n },\n \"operating\": {\n \"carrierCode\": \"BA\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 282,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"6502.20\",\n \"base\": \"3898.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"FORM_OF_PAYMENT\"\n }\n ],\n \"grandTotal\": \"6502.20\",\n \"billingCurrency\": \"USD\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.90\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"985.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"186.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"16.00\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"38.20\",\n \"code\": \"UB\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n }\n ],\n \"refundableTaxes\": \"82.20\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"brandedFare\": \"ECLASSIC\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3251.10\",\n \"base\": \"1949.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.90\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"985.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"186.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"16.00\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"38.20\",\n \"code\": \"UB\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n }\n ],\n \"refundableTaxes\": \"82.20\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"I\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"INX4A3S5\",\n \"brandedFare\": \"BUSOPTIMA\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LLX4F0M5\",\n \"brandedFare\": \"ECLASSIC\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"bookingRequirements\": {\n \"emailAddressRequired\": true,\n \"mobilePhoneNumberRequired\": true,\n \"travelerRequirements\": [\n {\n \"travelerId\": \"1\",\n \"genderRequired\": true,\n \"documentRequired\": true,\n \"dateOfBirthRequired\": true,\n \"redressRequiredIfAny\": true,\n \"residenceRequired\": true\n },\n {\n \"travelerId\": \"2\",\n \"genderRequired\": true,\n \"documentRequired\": true,\n \"dateOfBirthRequired\": true,\n \"redressRequiredIfAny\": true,\n \"residenceRequired\": true\n }\n ]\n }\n },\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n },\n \"LHR\": {\n \"cityCode\": \"LON\",\n \"countryCode\": \"GB\"\n }\n }\n }\n}"
}
]
},
{
"name": "Flight Create Orders",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200, 201 or Segment sell failure\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
"",
" if (responseCode === 200 || responseCode === 201) {",
" pm.expect(responseCode).to.be.oneOf([200, 201]);",
" // extract 'flightOrderId' into collection variable",
" pm.collectionVariables.set(\"flightOrderId\", data.data.id);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].title).to.equal(\"SEGMENT SELL FAILURE\");",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"flightOffers\": [\n {{flightOfferPriceData}}\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"gender\": \"MALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"documents\": [\n {\n \"documentType\": \"PASSPORT\",\n \"birthPlace\": \"Madrid\",\n \"issuanceLocation\": \"Madrid\",\n \"issuanceDate\": \"2015-04-14\",\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"validityCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"holder\": true\n }\n ]\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO\",\n \"lastName\": \"RODRIGUEZ\"\n },\n \"companyName\": \"INCREIBLE VIAJES\",\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"emailAddress\": \"support@increibleviajes.es\",\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"cityName\": \"Madrid\",\n \"countryCode\": \"ES\"\n }\n }\n ]\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/flight-orders",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"flight-orders"
]
},
"description": "The Flight Create Orders is an API to book flights and ancillary services proposed by the airlines like additional checked bags or seats with extra-legroom. It returns flight order unique ID and details."
},
"response": [
{
"name": "Flight Create Orders",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"paymentCardRequired\": false,\n \"lastTicketingDate\": \"2024-04-03\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-17T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-04-18T06:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"333\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT6H45M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 556,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-04-18T07:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T09:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-05-01T20:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-05-01T22:20:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1101\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-05-02T13:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-05-02T15:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"334\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 278,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"7151.60\",\n \"base\": \"4410.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"FORM_OF_PAYMENT\"\n }\n ],\n \"grandTotal\": \"7151.60\",\n \"billingCurrency\": \"USD\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"gender\": \"MALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"documents\": [\n {\n \"documentType\": \"PASSPORT\",\n \"birthPlace\": \"Madrid\",\n \"issuanceLocation\": \"Madrid\",\n \"issuanceDate\": \"2015-04-14\",\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"validityCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"holder\": true\n }\n ]\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"contact\": {\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ]\n },\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO\",\n \"lastName\": \"RODRIGUEZ\"\n },\n \"companyName\": \"INCREIBLE VIAJES\",\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"emailAddress\": \"support@increibleviajes.es\",\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"cityName\": \"Madrid\",\n \"countryCode\": \"ES\"\n }\n }\n ]\n }\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/flight-orders",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"flight-orders"
]
}
},
"status": "Created",
"code": 201,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Wed, 03 Apr 2024 03:43:12 GMT"
},
{
"key": "Content-Type",
"value": "application/vnd.amadeus+json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Ama-Internal-Message-Version",
"value": "14.1"
},
{
"key": "Ama-Request-Id",
"value": "00011TZG5BCKZV"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Ama-Gateway-Request-Id",
"value": "rrt-018d70d145cb0fb28-b-de-32265-389448026-17"
},
{
"key": "Access-Control-Allow-Headers",
"value": "origin, x-requested-with, accept, Content-Type, Authorization"
},
{
"key": "Access-Control-Max-Age",
"value": "3628800"
},
{
"key": "Access-Control-Allow-Methods",
"value": "*"
},
{
"key": "Server",
"value": "Amadeus"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"data\": {\n \"type\": \"flight-order\",\n \"id\": \"eJzTd9cPDAgICfYAAAvRAoY%3D\",\n \"queuingOfficeId\": \"NCE4D31SB\",\n \"associatedRecords\": [\n {\n \"reference\": \"QPPTSH\",\n \"creationDate\": \"2024-04-03T03:43:00.000\",\n \"originSystemCode\": \"GDS\",\n \"flightOfferId\": \"1\"\n }\n ],\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"nonHomogeneous\": false,\n \"lastTicketingDate\": \"2024-04-03\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-17T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-04-18T06:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"333\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT6H45M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 556,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-04-18T07:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T09:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-05-01T20:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-05-01T22:20:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1101\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-05-02T13:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-05-02T15:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"334\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT7H35M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 278,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"7151.60\",\n \"base\": \"4410.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"FORM_OF_PAYMENT\"\n }\n ],\n \"grandTotal\": \"7151.60\",\n \"billingCurrency\": \"USD\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ],\n \"refundableTaxes\": \"100.90\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"brandedFare\": \"BIZSTAND\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"brandedFare\": \"STANDARD6\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"dateOfBirth\": \"1982-01-16\",\n \"gender\": \"MALE\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"documents\": [\n {\n \"number\": \"00000000\",\n \"issuanceDate\": \"2015-04-14\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"issuanceLocation\": \"Madrid\",\n \"nationality\": \"ES\",\n \"birthPlace\": \"Madrid\",\n \"documentType\": \"PASSPORT\",\n \"holder\": true\n }\n ],\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\"\n }\n },\n {\n \"id\": \"2\",\n \"dateOfBirth\": \"2012-10-11\",\n \"gender\": \"FEMALE\",\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n },\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"jorge.gonzales833@telefonica.es\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\"\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"delay\": \"6D\"\n },\n \"automatedProcess\": [\n {\n \"code\": \"IMMEDIATE\",\n \"queue\": {\n \"number\": \"0\",\n \"category\": \"0\"\n },\n \"officeId\": \"NCE4D31SB\"\n }\n ],\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO RODRIGUEZ\"\n },\n \"address\": {\n \"lines\": [\n \"Calle Prado, 16\"\n ],\n \"postalCode\": \"28014\",\n \"countryCode\": \"ES\",\n \"cityName\": \"Madrid\"\n },\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"companyName\": \"INCREIBLE VIAJES\",\n \"emailAddress\": \"support@increibleviajes.es\"\n }\n ]\n },\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"CDG\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n }\n }\n }\n}"
}
]
},
{
"name": "Flight Order Management",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/flight-orders/{{flightOrderId}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"flight-orders",
"{{flightOrderId}}"
]
},
"description": "The Flight Order Management REST JSON API is an open API that allows you to manipulate a flight order previously created."
},
"response": [
{
"name": "Flight Order Management",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/flight-orders/eJzTd9cPDAgICfYAAAvRAoY%3D",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"flight-orders",
"eJzTd9cPDAgICfYAAAvRAoY%3D"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Wed, 03 Apr 2024 03:43:57 GMT"
},
{
"key": "Content-Type",
"value": "application/vnd.amadeus+json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Ama-Internal-Message-Version",
"value": "14.1"
},
{
"key": "Ama-Request-Id",
"value": "0001K3SNUBCL18"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Ama-Gateway-Request-Id",
"value": "rrt-018d70d145cb0fb28-b-de-32265-389448026-18"
},
{
"key": "Access-Control-Allow-Headers",
"value": "origin, x-requested-with, accept, Content-Type, Authorization"
},
{
"key": "Access-Control-Max-Age",
"value": "3628800"
},
{
"key": "Access-Control-Allow-Methods",
"value": "*"
},
{
"key": "Server",
"value": "Amadeus"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"meta\": {\n \"count\": 1,\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v1/booking/flight-orders/eJzTd9cPDAgICfYAAAvRAoY%3D\"\n }\n },\n \"data\": {\n \"type\": \"flight-order\",\n \"id\": \"eJzTd9cPDAgICfYAAAvRAoY%3D\",\n \"queuingOfficeId\": \"NCE4D31SB\",\n \"associatedRecords\": [\n {\n \"reference\": \"QPPTSH\",\n \"originSystemCode\": \"AF\",\n \"flightOfferId\": \"1\"\n },\n {\n \"reference\": \"QPPTSH\",\n \"creationDate\": \"2024-04-03T03:43:00\",\n \"originSystemCode\": \"GDS\",\n \"flightOfferId\": \"1\"\n }\n ],\n \"flightOffers\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"nonHomogeneous\": false,\n \"lastTicketingDate\": \"2024-04-03\",\n \"itineraries\": [\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-04-17T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-04-18T06:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"333\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT6H45M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 556,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-04-18T07:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-04-18T09:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"duration\": \"PT2H10M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"BUSINESS\"\n }\n ]\n }\n ]\n },\n {\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2024-05-01T20:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2024-05-01T22:20:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1101\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"duration\": \"PT2H5M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 105,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2E\",\n \"at\": \"2024-05-02T13:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"BOS\",\n \"terminal\": \"E\",\n \"at\": \"2024-05-02T15:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"334\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"duration\": \"PT7H35M\",\n \"bookingStatus\": \"CONFIRMED\",\n \"segmentType\": \"ACTIVE\",\n \"isFlown\": false,\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"co2Emissions\": [\n {\n \"weight\": 278,\n \"weightUnit\": \"KG\",\n \"cabin\": \"ECONOMY\"\n }\n ]\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"7151.60\",\n \"base\": \"4410.00\",\n \"grandTotal\": \"7151.60\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ]\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"travelerType\": \"CHILD\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ]\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"mealServices\": [\n {\n \"label\": \"Breakfast\"\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"mealServices\": [\n {\n \"label\": \"Snack\"\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n },\n {\n \"travelerId\": \"2\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"USD\",\n \"total\": \"3575.80\",\n \"base\": \"2205.00\",\n \"taxes\": [\n {\n \"amount\": \"5.60\",\n \"code\": \"AY\"\n },\n {\n \"amount\": \"9.00\",\n \"code\": \"FR\"\n },\n {\n \"amount\": \"15.80\",\n \"code\": \"JD\"\n },\n {\n \"amount\": \"0.70\",\n \"code\": \"OG\"\n },\n {\n \"amount\": \"3.80\",\n \"code\": \"QV\"\n },\n {\n \"amount\": \"48.20\",\n \"code\": \"QX\"\n },\n {\n \"amount\": \"44.40\",\n \"code\": \"US\"\n },\n {\n \"amount\": \"3.83\",\n \"code\": \"XA\"\n },\n {\n \"amount\": \"4.50\",\n \"code\": \"XF\"\n },\n {\n \"amount\": \"7.00\",\n \"code\": \"XY\"\n },\n {\n \"amount\": \"6.97\",\n \"code\": \"YC\"\n },\n {\n \"amount\": \"46.00\",\n \"code\": \"YQ\"\n },\n {\n \"amount\": \"1175.00\",\n \"code\": \"YR\"\n }\n ]\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"Z\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"BUSINESS\",\n \"fareBasis\": \"ZNX45NDL\",\n \"class\": \"J\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n },\n \"mealServices\": [\n {\n \"label\": \"Breakfast\"\n }\n ]\n },\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n },\n \"mealServices\": [\n {\n \"label\": \"Snack\"\n }\n ]\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"RKX46NMZ\",\n \"class\": \"R\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"name\": {\n \"firstName\": \"ADRIANA\",\n \"lastName\": \"GONZALES\"\n },\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"JORGE.GONZALES833@TELEFONICA.ES\"\n }\n },\n {\n \"id\": \"2\",\n \"gender\": \"MALE\",\n \"name\": {\n \"firstName\": \"JORGE\",\n \"lastName\": \"GONZALES\"\n },\n \"documents\": [\n {\n \"number\": \"00000000\",\n \"expiryDate\": \"2025-04-14\",\n \"issuanceCountry\": \"ES\",\n \"nationality\": \"ES\",\n \"documentType\": \"PASSPORT\",\n \"holder\": true\n }\n ],\n \"contact\": {\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080076\"\n }\n ],\n \"emailAddress\": \"JORGE.GONZALES833@TELEFONICA.ES\"\n }\n }\n ],\n \"remarks\": {\n \"general\": [\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"ONLINE BOOKING FROM INCREIBLE VIAJES\",\n \"flightOfferIds\": [\n \"1\"\n ]\n },\n {\n \"subType\": \"GENERAL_MISCELLANEOUS\",\n \"text\": \"PRICING ENTRY FXP/FF1,2-BIZSTAND/FF3,4-STANDARD6/R,P,VC-AF,FC-USD/P1-2\",\n \"flightOfferIds\": [\n \"1\"\n ]\n }\n ],\n \"airline\": [\n {\n \"subType\": \"ADVANCED_TICKET_TIME_LIMIT\",\n \"airlineCode\": \"AF\",\n \"text\": \"TO AF BY 06APR 0500 NCE OTHERWISE WILL BE XLD\",\n \"flightOfferIds\": [\n \"1\"\n ]\n }\n ]\n },\n \"ticketingAgreement\": {\n \"option\": \"DELAY_TO_CANCEL\",\n \"dateTime\": \"2024-04-09\"\n },\n \"contacts\": [\n {\n \"addresseeName\": {\n \"firstName\": \"PABLO RODRIGUEZ\"\n },\n \"address\": {\n \"lines\": [\n \"CALLE PRADO, 16\"\n ],\n \"postalCode\": \"28014\",\n \"countryCode\": \"ES\",\n \"cityName\": \"MADRID\"\n },\n \"purpose\": \"STANDARD\",\n \"phones\": [\n {\n \"deviceType\": \"LANDLINE\",\n \"countryCallingCode\": \"34\",\n \"number\": \"480080071\"\n },\n {\n \"deviceType\": \"MOBILE\",\n \"countryCallingCode\": \"33\",\n \"number\": \"480080072\"\n }\n ],\n \"companyName\": \"INCREIBLE VIAJES\",\n \"emailAddress\": \"SUPPORT@INCREIBLEVIAJES.ES\"\n }\n ]\n },\n \"dictionaries\": {\n \"locations\": {\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"BOS\": {\n \"cityCode\": \"BOS\",\n \"countryCode\": \"US\"\n },\n \"CDG\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n }\n }\n }\n}"
}
]
},
{
"name": "Flight Order Management",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 204\", function () {",
" pm.response.to.have.status(204);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/flight-orders/{{flightOrderId}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"flight-orders",
"{{flightOrderId}}"
]
},
"description": "The Flight Order Management REST JSON API is an open API that allows you to manipulate a flight order previously created."
},
"response": []
},
{
"name": "Seatmap Display",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or Seat map is not available\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].detail).to.equal(\"Seat map is not available\");",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/seatmaps?flight-orderId={{flightOrderId}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"seatmaps"
],
"query": [
{
"key": "flight-orderId",
"value": "{{flightOrderId}}"
}
]
},
"description": " The Seatmap Display REST/JSON API is an open API that allows you to retrieve the seat map of one or several flights."
},
"response": []
},
{
"name": "Seatmap Display",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or Seat map is not available\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" var request = pm.request;",
"",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].detail).to.equal(\"Seat map is not available\");",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": [\n {{flightOfferData}}\n ]\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/seatmaps",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"seatmaps"
]
},
"description": " The Seatmap Display REST/JSON API is an open API that allows you to retrieve the seat map of one or several flights."
},
"response": []
},
{
"name": "Branded Fares Upsell",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or No upsell offer can be found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].detail).to.equal(\"No upsell offer can be found\");",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"flight-offers-upselling\",\n \"flightOffers\": [\n {{flightOfferData}}\n ],\n \"payments\": [\n {\n \"brand\": \"VISA_IXARIS\",\n \"binNumber\": 123456,\n \"flightOfferIds\": [\n 1\n ]\n }\n ]\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-offers/upselling",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-offers",
"upselling"
]
},
"description": "Branded fares, or fare families, are airline-created fares that combine different products and services like bags, sets, meals, free cancellation or miles accrual. The Amadeus Branded Fare Upsell API provides the branded fares available for a given flight, along with pricing and a fare description. This enables you to increase booking revenue by recommending higher-value fares during the shopping phase.\n\nThe Branded Fares Upsell API is easily integrated into the Amadeus REST/JSON flight booking engine and provides branded fare options for flights returned by the Flight Offers Search API."
},
"response": []
},
{
"name": "Flight Price Analysis",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code\r",
"pm.test(\"Response status code is 200\", function () {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// Set up\r",
"// Get Response in variable\r",
"const response = pm.response.json();\r",
"\r",
"// Get Query in variable\r",
"let query = {};\r",
"pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r",
"\r",
"// process calculation only for succeful reply\r",
"if (pm.response.status == \"OK\"){\r",
"\r",
" let quartile = [];\r",
"\r",
" // Get and order traffic data per month\r",
" for (let i = 0; i < 5; i++) {\r",
" quartile.push(response.data[0].priceMetrics[i].amount + ' ' + query.currencyCode);\r",
" };\r",
"\r",
" min = quartile[0]\r",
" max = quartile[4]\r",
" first = quartile[1]\r",
" third = quartile[3]\r",
"}\r",
"\r",
"\r",
"// Function to get header value by name with fallback\r",
"function getHeaderValue(headerName, fallbackHeaderName) {\r",
" let headers = pm.response.headers;\r",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r",
"}\r",
"\r",
"// Log the specific headers\r",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));\r",
"\r",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r",
"console.log(headerName + \": \" + amaRequestId);\r",
"\r",
"\r",
"// Define visualizer template\r",
"let template_success = `\r",
"<table style=\"width:50%; border-style: hidden\">\r",
" <tr>\r",
" <th style=\"text-align: center\"; colspan=\"4\"> Price repartition for a flight from ${query.originIataCode} to ${query.destinationIataCode} on the ${query.departureDate} in ${query.currencyCode}</th>\r",
" </tr>\r",
" <tr style=\"border-style: hidden\">\r",
" <td style=\"background-color:rgba(0, 163, 78, 0.6); border-radius: 20% 20% 20% 20%; border-collapse: separated; border: 2px solid white; width:25%\"></td>\r",
" <td style=\"background-color:rgba(247, 168, 39, 0.6); border-radius: 20% 0% 0% 20%; border-collapse: collapse; width:25%\"></td>\r",
" <td style=\"background-color:rgba(247, 168, 39, 0.6); border-radius: 0% 20% 20% 0%; border-collapse: collapse; width:25%\"></td>\r",
" <td style=\"background-color:rgba(206, 0, 88, 0.6); border-radius: 20% 20% 20% 20%; border-collapse: separated; border: 2px solid white; width:25%\"></td>\r",
" </tr>\r",
" <tr\">\r",
" <td style=\"text-align: center\"; colspan=\"2\"> ${first} </td>\r",
" <td style=\"text-align: center\"; colspan=\"2\"> ${third} </td>\r",
" </tr>\r",
" <tr style=\"border-style: hidden\">\r",
" <td colspan=\"4\"> Minimum selled price: ${min} </td>\r",
" </tr>\r",
" <tr style=\"border-style: hidden\">\r",
" <td colspan=\"4\"> Maximum selled price: ${max} </td>\r",
" </tr>\r",
"</table>\r",
"`;\r",
"\r",
"let template_nodata = \"OUPS there is no data for this city or period\";\r",
"\r",
"let template_default = \"Sorry, we can't visualize\";\r",
"\r",
"// Set visualizer\r",
"if (pm.response.status == \"OK\"){\r",
" if (response.meta.count > 0){\r",
" // When there is data, return a bar graph\r",
" pm.visualizer.set(template_success, {\r",
" response: pm.response.json()\r",
" });\r",
" }else{\r",
" // when there is no data, return a message\r",
" pm.visualizer.set(template_nodata, {\r",
" response: pm.response.json()\r",
" });\r",
" }\r",
"}else{\r",
" // return a message when we can't visualise ( status =! 200 )\r",
" pm.visualizer.set(template_default, {\r",
" response: pm.response.json()\r",
" });\r",
"}"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/analytics/itinerary-price-metrics?originIataCode=MAD&destinationIataCode=CDG&departureDate=2022-11-21¤cyCode=EUR&oneWay=false",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"analytics",
"itinerary-price-metrics"
],
"query": [
{
"key": "originIataCode",
"value": "MAD"
},
{
"key": "destinationIataCode",
"value": "CDG"
},
{
"key": "departureDate",
"value": "2022-11-21"
},
{
"key": "currencyCode",
"value": "EUR"
},
{
"key": "oneWay",
"value": "false"
}
]
},
"description": "When booking a flight, travelers need to be confident that they're getting a good deal. The Flight Price Analysis API uses an Artificial Intelligence algorithm trained on Amadeus historical flight booking data to show how current flight prices compare to historical fares and whether the price of a flight is below or above average. \n\nFor a given city pair and departure date, the API provides historical prices in a quartile distribution, including minimum, maximum and average price."
},
"response": []
},
{
"name": "Flight Choice Prediction",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"meta\": {\n \"count\": 49,\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=ATH&destinationLocationCode=MAD&adults=1&departureDate=2021-11-20\"\n }\n },\n \"data\": [\n {\n \"type\": \"flight-offer\",\n \"id\": \"1\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT4H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4\",\n \"at\": \"2021-11-20T23:00:00\"\n },\n \"carrierCode\": \"IB\",\n \"number\": \"3281\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"IB\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"7\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"82.69\",\n \"base\": \"53.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"82.69\",\n \"additionalServices\": [\n {\n \"amount\": \"25.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"IB\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"82.69\",\n \"base\": \"53.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"7\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"ADLNAOB4\",\n \"brandedFare\": \"NOBAG\",\n \"class\": \"A\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"2\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H20M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T05:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-20T07:55:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1842\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT1H25M\",\n \"id\": \"36\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-20T11:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T13:50:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1357\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT4H30M\",\n \"id\": \"37\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"136.99\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"TK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"36\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"37\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"3\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T21:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-21T00:10:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1844\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT1H35M\",\n \"id\": \"28\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-21T11:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:50:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1357\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT4H30M\",\n \"id\": \"29\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"136.99\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"TK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"28\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"29\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"4\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT24H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-20T17:15:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1850\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT1H30M\",\n \"id\": \"14\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"IST\",\n \"at\": \"2021-11-21T11:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:50:00\"\n },\n \"carrierCode\": \"TK\",\n \"number\": \"1357\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"TK\"\n },\n \"duration\": \"PT4H30M\",\n \"id\": \"15\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"136.99\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"TK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"136.99\",\n \"base\": \"2.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"14\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"15\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WN2PROW\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"weight\": 20,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"5\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"88\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T07:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T10:15:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1699\",\n \"aircraft\": {\n \"code\": \"73W\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"89\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"142.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"88\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"89\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"6\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"92\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T09:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T12:15:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1701\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"93\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"142.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"142.24\",\n \"base\": \"85.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"92\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"93\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"TS55BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"T\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"7\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-10\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H20M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T18:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"OTP\",\n \"at\": \"2021-11-20T20:30:00\"\n },\n \"carrierCode\": \"RO\",\n \"number\": \"274\",\n \"aircraft\": {\n \"code\": \"73W\"\n },\n \"operating\": {\n \"carrierCode\": \"RO\"\n },\n \"duration\": \"PT1H35M\",\n \"id\": \"40\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"OTP\",\n \"at\": \"2021-11-21T08:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T11:15:00\"\n },\n \"carrierCode\": \"RO\",\n \"number\": \"415\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"RO\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"41\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"151.99\",\n \"base\": \"99.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"151.99\",\n \"additionalServices\": [\n {\n \"amount\": \"45.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"RO\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"151.99\",\n \"base\": \"99.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"40\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"VOWSVRGR\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"41\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"EOWSVRES\",\n \"class\": \"E\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"8\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-15\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT23H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"80\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T13:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T16:05:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1703\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"81\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"159.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"80\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"81\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"9\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-15\",\n \"numberOfBookableSeats\": 6,\n \"itineraries\": [\n {\n \"duration\": \"PT27H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-20T20:00:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1576\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"34\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AMS\",\n \"at\": \"2021-11-21T17:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T19:35:00\"\n },\n \"carrierCode\": \"KL\",\n \"number\": \"1705\",\n \"aircraft\": {\n \"code\": \"73J\"\n },\n \"operating\": {\n \"carrierCode\": \"KL\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"35\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"159.24\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"159.24\",\n \"base\": \"102.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"34\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"35\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LS54BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"10\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT12H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"24\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T15:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:25:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9432\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H50M\",\n \"id\": \"25\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"189.84\",\n \"base\": \"136.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"189.84\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"189.84\",\n \"base\": \"136.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"24\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"25\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"11\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT27H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"82\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T08:55:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9430\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H55M\",\n \"id\": \"83\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"194.32\",\n \"base\": \"136.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"194.32\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"194.32\",\n \"base\": \"136.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"82\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"83\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"QS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"Q\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"12\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 1,\n \"itineraries\": [\n {\n \"duration\": \"PT19H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"56\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T08:55:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9430\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H55M\",\n \"id\": \"57\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"210.32\",\n \"base\": \"152.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"210.32\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"210.32\",\n \"base\": \"152.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"56\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"HS50BALG\",\n \"class\": \"H\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"57\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"HS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"H\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"13\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"42\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T12:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T14:35:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1600\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"43\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"42\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"43\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"14\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT14H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"10\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T19:15:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1100\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"11\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"10\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"11\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"15\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 1,\n \"itineraries\": [\n {\n \"duration\": \"PT12H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"26\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T15:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:25:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1800\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"27\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.23\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"26\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"27\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"16\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT28H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"5\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T15:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T17:25:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"9432\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT1H50M\",\n \"id\": \"6\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.32\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"265.32\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"265.32\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"5\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"6\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"17\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 2,\n \"itineraries\": [\n {\n \"duration\": \"PT28H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"3\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T09:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"4\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"266.40\",\n \"base\": \"207.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"266.40\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"266.40\",\n \"base\": \"207.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"3\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"4\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"SS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"S\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"18\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 3,\n \"itineraries\": [\n {\n \"duration\": \"PT9H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"64\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T23:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1400\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"65\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"311.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"64\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"65\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"19\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"86\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T23:05:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1400\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H15M\",\n \"id\": \"87\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"311.23\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"311.23\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"86\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"87\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"20\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"74\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-21T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T09:10:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1000\",\n \"aircraft\": {\n \"code\": \"318\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H10M\",\n \"id\": \"75\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"312.40\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"74\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"75\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"21\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT22H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"22\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-21T09:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T11:35:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1300\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"23\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"312.40\",\n \"additionalServices\": [\n {\n \"amount\": \"30.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": false\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"312.40\",\n \"base\": \"253.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"22\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n },\n {\n \"segmentId\": \"23\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"WS50BALG\",\n \"brandedFare\": \"LIGHT1\",\n \"class\": \"W\",\n \"includedCheckedBags\": {\n \"quantity\": 0\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"22\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H20M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T08:10:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1843\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"38\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T12:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T14:40:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2026\",\n \"aircraft\": {\n \"code\": \"221\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"39\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"38\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"39\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"23\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT21H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T19:35:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1839\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"96\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-21T12:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T14:40:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2026\",\n \"aircraft\": {\n \"code\": \"223\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"97\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"96\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"97\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"24\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT25H35M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T15:55:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1831\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"62\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-21T12:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T14:40:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2026\",\n \"aircraft\": {\n \"code\": \"223\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H25M\",\n \"id\": \"63\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"62\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"63\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"25\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT26H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-20T19:35:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"1839\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H50M\",\n \"id\": \"32\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ZRH\",\n \"at\": \"2021-11-21T16:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T19:00:00\"\n },\n \"carrierCode\": \"LX\",\n \"number\": \"2032\",\n \"aircraft\": {\n \"code\": \"221\"\n },\n \"operating\": {\n \"carrierCode\": \"LX\"\n },\n \"duration\": \"PT2H20M\",\n \"id\": \"33\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"342.83\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LX\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"342.83\",\n \"base\": \"221.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"32\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"33\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"26\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT6H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T07:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1757\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"16\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T08:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T11:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1800\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"17\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"16\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"17\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"27\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT8H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T16:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1755\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"20\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1806\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"21\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"20\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"21\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"28\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T07:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1757\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"44\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T11:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T14:35:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1802\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"45\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"44\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"45\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"29\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT11H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T12:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T14:30:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1753\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"52\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1806\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"53\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"350.67\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"350.67\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"52\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"53\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"30\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT6H35M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1283\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"58\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1120\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"59\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"58\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"59\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"31\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT6H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"70\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T10:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T12:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1112\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"71\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"70\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"71\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"32\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H35M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"60\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T13:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T15:35:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1114\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"61\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"60\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"61\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"33\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT10H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T16:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1279\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"8\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1120\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"9\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"8\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"9\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"34\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT13H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"46\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T16:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1122\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"47\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"46\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"47\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"35\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT17H25M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T07:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T09:05:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1285\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H5M\",\n \"id\": \"48\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T20:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1120\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"49\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"356.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"356.52\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"48\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"49\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"36\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT18H15M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T07:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1757\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"30\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T20:45:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T23:25:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1806\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"31\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"363.55\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"363.55\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"363.55\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"30\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"31\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"37\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT20H5M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T16:15:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1755\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"12\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"MUC\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T08:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T11:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1800\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H40M\",\n \"id\": \"13\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"370.24\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"370.24\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"370.24\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"12\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"13\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"38\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1283\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"94\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T10:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T12:45:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1112\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"95\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"374.63\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"94\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"95\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"39\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-12\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT22H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T19:50:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1283\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"78\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T15:35:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1114\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT2H35M\",\n \"id\": \"79\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"374.63\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"LH\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"374.63\",\n \"base\": \"226.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"78\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"79\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"V03CLSE9\",\n \"brandedFare\": \"CLASSIC\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"40\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT22H50M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T16:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CAI\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T17:50:00\"\n },\n \"carrierCode\": \"MS\",\n \"number\": \"748\",\n \"aircraft\": {\n \"code\": \"32N\"\n },\n \"operating\": {\n \"carrierCode\": \"MS\"\n },\n \"duration\": \"PT1H50M\",\n \"id\": \"84\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CAI\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-21T09:30:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-21T13:50:00\"\n },\n \"carrierCode\": \"MS\",\n \"number\": \"753\",\n \"aircraft\": {\n \"code\": \"738\"\n },\n \"operating\": {\n \"carrierCode\": \"MS\"\n },\n \"duration\": \"PT5H20M\",\n \"id\": \"85\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"411.33\",\n \"base\": \"214.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"411.33\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"MS\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"411.33\",\n \"base\": \"214.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"84\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LRIMS\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n },\n {\n \"segmentId\": \"85\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"LWRIMS\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 2\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"41\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T17:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DXB\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T00:20:00\"\n },\n \"carrierCode\": \"EK\",\n \"number\": \"210\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"EK\"\n },\n \"duration\": \"PT4H25M\",\n \"id\": \"76\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DXB\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T07:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T12:40:00\"\n },\n \"carrierCode\": \"EK\",\n \"number\": \"141\",\n \"aircraft\": {\n \"code\": \"77W\"\n },\n \"operating\": {\n \"carrierCode\": \"EK\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"77\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"753.95\",\n \"base\": \"662.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"753.95\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"EK\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"753.95\",\n \"base\": \"662.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"76\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KLEESGR1\",\n \"brandedFare\": \"ECOFLEX\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"77\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KEEESES1\",\n \"brandedFare\": \"ECOFLEX\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"weight\": 30,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"42\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-06-30\",\n \"numberOfBookableSeats\": 7,\n \"itineraries\": [\n {\n \"duration\": \"PT18H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T13:55:00\"\n },\n \"arrival\": {\n \"iataCode\": \"AUH\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T20:15:00\"\n },\n \"carrierCode\": \"EY\",\n \"number\": \"90\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"EY\"\n },\n \"duration\": \"PT4H20M\",\n \"id\": \"54\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"AUH\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-21T02:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4\",\n \"at\": \"2021-11-21T07:25:00\"\n },\n \"carrierCode\": \"EY\",\n \"number\": \"75\",\n \"aircraft\": {\n \"code\": \"789\"\n },\n \"operating\": {\n \"carrierCode\": \"EY\"\n },\n \"duration\": \"PT8H15M\",\n \"id\": \"55\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"937.56\",\n \"base\": \"649.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"937.56\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"EY\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"937.56\",\n \"base\": \"649.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"54\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"VRH2GR\",\n \"brandedFare\": \"YH\",\n \"class\": \"V\",\n \"includedCheckedBags\": {\n \"weight\": 23,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"55\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"KLC2ES\",\n \"brandedFare\": \"YC\",\n \"class\": \"K\",\n \"includedCheckedBags\": {\n \"weight\": 23,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"43\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT12H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T00:30:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"208\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"66\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T01:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T07:05:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"147\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"67\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"976.89\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"66\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"67\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"44\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT18H55M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T00:30:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"208\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"90\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T07:40:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T13:20:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"149\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"91\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"976.89\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"90\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"91\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"45\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT19H\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T13:05:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-20T18:10:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"204\",\n \"aircraft\": {\n \"code\": \"788\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"1\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T01:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T07:05:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"147\",\n \"aircraft\": {\n \"code\": \"359\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"2\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"976.89\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"976.89\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"1\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"2\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"46\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-18\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT26H40M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T19:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T00:30:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"208\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT4H5M\",\n \"id\": \"68\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"DOH\",\n \"at\": \"2021-11-21T15:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"4S\",\n \"at\": \"2021-11-21T21:05:00\"\n },\n \"carrierCode\": \"QR\",\n \"number\": \"151\",\n \"aircraft\": {\n \"code\": \"788\"\n },\n \"operating\": {\n \"carrierCode\": \"QR\"\n },\n \"duration\": \"PT7H40M\",\n \"id\": \"69\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"979.85\",\n \"base\": \"696.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"979.85\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"QR\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"979.85\",\n \"base\": \"696.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"68\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR2R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n },\n {\n \"segmentId\": \"69\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"NJR7R1RW\",\n \"class\": \"N\",\n \"includedCheckedBags\": {\n \"weight\": 25,\n \"weightUnit\": \"KG\"\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"47\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT7H10M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:20:00\"\n },\n \"arrival\": {\n \"iataCode\": \"FRA\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T16:20:00\"\n },\n \"carrierCode\": \"LH\",\n \"number\": \"1279\",\n \"aircraft\": {\n \"code\": \"321\"\n },\n \"operating\": {\n \"carrierCode\": \"LH\"\n },\n \"duration\": \"PT3H\",\n \"id\": \"18\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"FRA\",\n \"at\": \"2021-11-20T18:00:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"at\": \"2021-11-20T20:30:00\"\n },\n \"carrierCode\": \"6X\",\n \"number\": \"9102\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"6X\"\n },\n \"duration\": \"PT2H30M\",\n \"id\": \"19\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1030.52\",\n \"base\": \"934.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1030.52\",\n \"additionalServices\": [\n {\n \"amount\": \"64.00\",\n \"type\": \"CHECKED_BAGS\"\n }\n ]\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"6X\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1030.52\",\n \"base\": \"934.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"18\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YFF77WW\",\n \"class\": \"Y\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"19\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YFF77WW\",\n \"class\": \"M\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"48\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT8H45M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T14:25:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T17:00:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1533\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H35M\",\n \"id\": \"72\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"ORY\",\n \"terminal\": \"3\",\n \"at\": \"2021-11-20T20:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"terminal\": \"2\",\n \"at\": \"2021-11-20T22:10:00\"\n },\n \"carrierCode\": \"UX\",\n \"number\": \"1026\",\n \"aircraft\": {\n \"code\": \"73H\"\n },\n \"operating\": {\n \"carrierCode\": \"UX\"\n },\n \"duration\": \"PT2H\",\n \"id\": \"73\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1157.84\",\n \"base\": \"1104.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1157.84\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"AF\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1157.84\",\n \"base\": \"1104.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"72\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"Y\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"73\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"L\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n },\n {\n \"type\": \"flight-offer\",\n \"id\": \"49\",\n \"source\": \"GDS\",\n \"instantTicketingRequired\": false,\n \"nonHomogeneous\": false,\n \"oneWay\": false,\n \"lastTicketingDate\": \"2021-11-20\",\n \"numberOfBookableSeats\": 9,\n \"itineraries\": [\n {\n \"duration\": \"PT9H30M\",\n \"segments\": [\n {\n \"departure\": {\n \"iataCode\": \"ATH\",\n \"at\": \"2021-11-20T06:10:00\"\n },\n \"arrival\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"2F\",\n \"at\": \"2021-11-20T08:50:00\"\n },\n \"carrierCode\": \"AF\",\n \"number\": \"1033\",\n \"aircraft\": {\n \"code\": \"320\"\n },\n \"operating\": {\n \"carrierCode\": \"AF\"\n },\n \"duration\": \"PT3H40M\",\n \"id\": \"50\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n },\n {\n \"departure\": {\n \"iataCode\": \"CDG\",\n \"terminal\": \"1\",\n \"at\": \"2021-11-20T12:35:00\"\n },\n \"arrival\": {\n \"iataCode\": \"MAD\",\n \"at\": \"2021-11-20T14:40:00\"\n },\n \"carrierCode\": \"6X\",\n \"number\": \"1199\",\n \"aircraft\": {\n \"code\": \"319\"\n },\n \"operating\": {\n \"carrierCode\": \"6X\"\n },\n \"duration\": \"PT2H5M\",\n \"id\": \"51\",\n \"numberOfStops\": 0,\n \"blacklistedInEU\": false\n }\n ]\n }\n ],\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1303.23\",\n \"base\": \"1104.00\",\n \"fees\": [\n {\n \"amount\": \"0.00\",\n \"type\": \"SUPPLIER\"\n },\n {\n \"amount\": \"0.00\",\n \"type\": \"TICKETING\"\n }\n ],\n \"grandTotal\": \"1303.23\"\n },\n \"pricingOptions\": {\n \"fareType\": [\n \"PUBLISHED\"\n ],\n \"includedCheckedBagsOnly\": true\n },\n \"validatingAirlineCodes\": [\n \"6X\"\n ],\n \"travelerPricings\": [\n {\n \"travelerId\": \"1\",\n \"fareOption\": \"STANDARD\",\n \"travelerType\": \"ADULT\",\n \"price\": {\n \"currency\": \"EUR\",\n \"total\": \"1303.23\",\n \"base\": \"1104.00\"\n },\n \"fareDetailsBySegment\": [\n {\n \"segmentId\": \"50\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"Y\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n },\n {\n \"segmentId\": \"51\",\n \"cabin\": \"ECONOMY\",\n \"fareBasis\": \"YS40BENN\",\n \"class\": \"M\",\n \"includedCheckedBags\": {\n \"quantity\": 1\n }\n }\n ]\n }\n ]\n }\n ],\n \"dictionaries\": {\n \"locations\": {\n \"CDG\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n },\n \"AMS\": {\n \"cityCode\": \"AMS\",\n \"countryCode\": \"NL\"\n },\n \"OTP\": {\n \"cityCode\": \"BUH\",\n \"countryCode\": \"RO\"\n },\n \"CAI\": {\n \"cityCode\": \"CAI\",\n \"countryCode\": \"EG\"\n },\n \"IST\": {\n \"cityCode\": \"IST\",\n \"countryCode\": \"TR\"\n },\n \"DXB\": {\n \"cityCode\": \"DXB\",\n \"countryCode\": \"AE\"\n },\n \"MAD\": {\n \"cityCode\": \"MAD\",\n \"countryCode\": \"ES\"\n },\n \"ZRH\": {\n \"cityCode\": \"ZRH\",\n \"countryCode\": \"CH\"\n },\n \"AUH\": {\n \"cityCode\": \"AUH\",\n \"countryCode\": \"AE\"\n },\n \"FRA\": {\n \"cityCode\": \"FRA\",\n \"countryCode\": \"DE\"\n },\n \"ATH\": {\n \"cityCode\": \"ATH\",\n \"countryCode\": \"GR\"\n },\n \"ORY\": {\n \"cityCode\": \"PAR\",\n \"countryCode\": \"FR\"\n },\n \"MUC\": {\n \"cityCode\": \"MUC\",\n \"countryCode\": \"DE\"\n },\n \"DOH\": {\n \"cityCode\": \"DOH\",\n \"countryCode\": \"QA\"\n }\n },\n \"aircraft\": {\n \"73H\": \"BOEING 737-800 (WINGLETS)\",\n \"73J\": \"BOEING 737-900\",\n \"32N\": \"AIRBUS A320NEO\",\n \"320\": \"AIRBUS A320\",\n \"221\": \"AIRBUS A220-100\",\n \"321\": \"AIRBUS A321\",\n \"223\": \"AIRBUS A220-300\",\n \"77W\": \"BOEING 777-300ER\",\n \"359\": \"AIRBUS A350-900\",\n \"788\": \"BOEING 787-8\",\n \"789\": \"BOEING 787-9\",\n \"318\": \"AIRBUS A318\",\n \"73W\": \"BOEING 737-700 (WINGLETS)\",\n \"319\": \"AIRBUS A319\",\n \"738\": \"BOEING 737-800\"\n },\n \"currencies\": {\n \"EUR\": \"EURO\"\n },\n \"carriers\": {\n \"KL\": \"KLM ROYAL DUTCH AIRLINES\",\n \"QR\": \"QATAR AIRWAYS\",\n \"6X\": \"AMADEUS SIX\",\n \"UX\": \"AIR EUROPA\",\n \"AF\": \"AIR FRANCE\",\n \"MS\": \"EGYPTAIR\",\n \"EK\": \"EMIRATES\",\n \"LX\": \"SWISS INTERNATIONAL AIR LINES\",\n \"EY\": \"ETIHAD AIRWAYS\",\n \"TK\": \"TURKISH AIRLINES\",\n \"IB\": \"IBERIA\",\n \"LH\": \"LUFTHANSA\",\n \"RO\": \"TAROM\"\n }\n }\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://test.api.amadeus.com/v2/shopping/flight-offers/prediction",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"shopping",
"flight-offers",
"prediction"
]
},
"description": "The Flight Choice Prediction API allows developers to forecast traveler choices in the context of search & shopping. Exposing machine learning & AI services for travel, this API consumes the output of the Flight Low-fare Search API and returns augmented content with probabilities of choices for each flight offers."
},
"response": []
}
]
},
{
"name": "Flight Inspiration",
"item": [
{
"name": "Flight Inspiration Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or No price results found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 404) {",
" pm.expect(data.errors[0].code).to.equal(6003);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-destinations?departureDate={{departureDate}}&origin=BOS",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-destinations"
],
"query": [
{
"key": "departureDate",
"value": "{{departureDate}}"
},
{
"key": "origin",
"value": "BOS"
}
]
},
"description": "The Flight Inspiration Search REST/JSON API enables you get a list of destinations from a given origin (city or airport) and the cheapest price for each one. The API can tell you the price of flying from a given origin to some destination, for a trip of a given duration, that falls within a given date range."
},
"response": [
{
"name": "Flight Inspiration Search",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=BOS",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-destinations"
],
"query": [
{
"key": "departureDate",
"value": "2018-11-01",
"disabled": true
},
{
"key": "origin",
"value": "BOS"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Fri, 12 Feb 2021 14:15:37 GMT"
},
{
"key": "Content-Type",
"value": "application/vnd.amadeus+json"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Ama-Internal-Message-Version",
"value": "14.1"
},
{
"key": "Ama-Request-Id",
"value": "0001UN696OF6A1"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Ama-Gateway-Request-Id",
"value": "rrt-0aee208b554493479-b-eu-25955-255706369-2"
},
{
"key": "Access-Control-Allow-Headers",
"value": "origin, x-requested-with, accept, Content-Type, Authorization"
},
{
"key": "Access-Control-Max-Age",
"value": "3628800"
},
{
"key": "Access-Control-Allow-Methods",
"value": "*"
},
{
"key": "Server",
"value": "Amadeus"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
],
"cookie": [],
"body": "{\n \"data\": [\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MIA\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-09\",\n \"price\": {\n \"total\": \"58.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MIA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MIA&departureDate=2021-03-08&returnDate=2021-03-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CHI\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-03-30\",\n \"price\": {\n \"total\": \"84.81\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CHI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CHI&departureDate=2021-03-29&returnDate=2021-03-30&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ORD\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"84.81\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ORD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ORD&departureDate=2021-03-30&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BWI\",\n \"departureDate\": \"2021-04-20\",\n \"returnDate\": \"2021-04-21\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BWI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BWI&departureDate=2021-04-20&returnDate=2021-04-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"EWR\",\n \"departureDate\": \"2021-04-20\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=EWR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=EWR&departureDate=2021-04-20&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NYC\",\n \"departureDate\": \"2021-04-15\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NYC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NYC&departureDate=2021-04-15&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"WAS\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-04-27\",\n \"price\": {\n \"total\": \"86.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=WAS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=WAS&departureDate=2021-04-26&returnDate=2021-04-27&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FLL\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-08\",\n \"price\": {\n \"total\": \"86.81\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FLL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FLL&departureDate=2021-03-01&returnDate=2021-03-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"JFK\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-10\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=JFK&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=JFK&departureDate=2021-03-08&returnDate=2021-03-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MCO\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MCO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MCO&departureDate=2021-03-15&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ORL\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ORL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ORL&departureDate=2021-03-15&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PHL\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PHL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PHL&departureDate=2021-04-07&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"RSW\",\n \"departureDate\": \"2021-02-23\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=RSW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=RSW&departureDate=2021-02-23&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TPA\",\n \"departureDate\": \"2021-03-11\",\n \"returnDate\": \"2021-03-15\",\n \"price\": {\n \"total\": \"96.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TPA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TPA&departureDate=2021-03-11&returnDate=2021-03-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DCA\",\n \"departureDate\": \"2021-04-13\",\n \"returnDate\": \"2021-04-14\",\n \"price\": {\n \"total\": \"98.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DCA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DCA&departureDate=2021-04-13&returnDate=2021-04-14&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"IAD\",\n \"departureDate\": \"2021-03-11\",\n \"returnDate\": \"2021-03-15\",\n \"price\": {\n \"total\": \"98.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=IAD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=IAD&departureDate=2021-03-11&returnDate=2021-03-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DFW\",\n \"departureDate\": \"2021-04-19\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"112.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DFW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DFW&departureDate=2021-04-19&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ATL\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"114.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ATL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ATL&departureDate=2021-04-14&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MSY\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"114.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MSY&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MSY&departureDate=2021-04-14&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MYR\",\n \"departureDate\": \"2021-02-22\",\n \"returnDate\": \"2021-02-25\",\n \"price\": {\n \"total\": \"114.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MYR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MYR&departureDate=2021-02-22&returnDate=2021-02-25&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MSP\",\n \"departureDate\": \"2021-04-22\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"116.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MSP&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MSP&departureDate=2021-04-22&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SJU\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"120.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SJU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SJU&departureDate=2021-03-15&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CLT\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"120.88\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CLT&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CLT&departureDate=2021-04-14&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LAS\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"122.78\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LAS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LAS&departureDate=2021-04-14&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"JAX\",\n \"departureDate\": \"2021-04-05\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"126.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=JAX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=JAX&departureDate=2021-04-05&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"AUS\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-06\",\n \"price\": {\n \"total\": \"146.40\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=AUS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=AUS&departureDate=2021-03-04&returnDate=2021-03-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"RDU\",\n \"departureDate\": \"2021-03-09\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"156.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=RDU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=RDU&departureDate=2021-03-09&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BNA\",\n \"departureDate\": \"2021-04-16\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"162.37\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BNA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BNA&departureDate=2021-04-16&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DEN\",\n \"departureDate\": \"2021-04-15\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"162.37\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DEN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DEN&departureDate=2021-04-15&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"STT\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"167.32\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=STT&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=STT&departureDate=2021-03-01&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PBI\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-09\",\n \"price\": {\n \"total\": \"171.39\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PBI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PBI&departureDate=2021-03-08&returnDate=2021-03-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LAX\",\n \"departureDate\": \"2021-02-24\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"174.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LAX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LAX&departureDate=2021-02-24&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CHS\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"186.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CHS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CHS&departureDate=2021-04-06&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CUN\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"187.56\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CUN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CUN&departureDate=2021-03-04&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PHX\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-04-29\",\n \"price\": {\n \"total\": \"188.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PHX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PHX&departureDate=2021-04-26&returnDate=2021-04-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HOU\",\n \"departureDate\": \"2021-04-16\",\n \"returnDate\": \"2021-04-20\",\n \"price\": {\n \"total\": \"190.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HOU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HOU&departureDate=2021-04-16&returnDate=2021-04-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"IAH\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"190.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=IAH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=IAH&departureDate=2021-04-14&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAN\",\n \"departureDate\": \"2021-04-14\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"190.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAN&departureDate=2021-04-14&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SRQ\",\n \"departureDate\": \"2021-02-20\",\n \"returnDate\": \"2021-02-27\",\n \"price\": {\n \"total\": \"196.20\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SRQ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SRQ&departureDate=2021-02-20&returnDate=2021-02-27&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SEA\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-09\",\n \"price\": {\n \"total\": \"196.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SEA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SEA&departureDate=2021-03-08&returnDate=2021-03-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAV\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"212.20\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAV&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAV&departureDate=2021-04-07&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SLC\",\n \"departureDate\": \"2021-03-22\",\n \"returnDate\": \"2021-03-23\",\n \"price\": {\n \"total\": \"218.80\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SLC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SLC&departureDate=2021-03-22&returnDate=2021-03-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"YTO\",\n \"departureDate\": \"2021-02-15\",\n \"returnDate\": \"2021-02-16\",\n \"price\": {\n \"total\": \"225.85\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=YTO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=YTO&departureDate=2021-02-15&returnDate=2021-02-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PDX\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-04-27\",\n \"price\": {\n \"total\": \"226.36\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PDX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PDX&departureDate=2021-04-26&returnDate=2021-04-27&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PUJ\",\n \"departureDate\": \"2021-04-19\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"228.45\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PUJ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PUJ&departureDate=2021-04-19&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"YYZ\",\n \"departureDate\": \"2021-05-09\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"234.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=YYZ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=YYZ&departureDate=2021-05-09&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SFO\",\n \"departureDate\": \"2021-03-31\",\n \"returnDate\": \"2021-04-08\",\n \"price\": {\n \"total\": \"236.79\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SFO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SFO&departureDate=2021-03-31&returnDate=2021-04-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BOG\",\n \"departureDate\": \"2021-03-11\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"263.75\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BOG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BOG&departureDate=2021-03-11&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"GUA\",\n \"departureDate\": \"2021-04-19\",\n \"returnDate\": \"2021-04-26\",\n \"price\": {\n \"total\": \"266.43\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=GUA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=GUA&departureDate=2021-04-19&returnDate=2021-04-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"AUA\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"272.35\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=AUA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=AUA&departureDate=2021-03-01&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MEX\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-05\",\n \"price\": {\n \"total\": \"273.30\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MEX&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MEX&departureDate=2021-03-04&returnDate=2021-03-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAL\",\n \"departureDate\": \"2021-04-13\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"274.98\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAL&departureDate=2021-04-13&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LIM\",\n \"departureDate\": \"2021-06-01\",\n \"returnDate\": \"2021-06-02\",\n \"price\": {\n \"total\": \"277.39\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LIM&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LIM&departureDate=2021-06-01&returnDate=2021-06-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NAS\",\n \"departureDate\": \"2021-02-15\",\n \"returnDate\": \"2021-02-17\",\n \"price\": {\n \"total\": \"279.89\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NAS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NAS&departureDate=2021-02-15&returnDate=2021-02-17&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SDQ\",\n \"departureDate\": \"2021-03-10\",\n \"returnDate\": \"2021-03-15\",\n \"price\": {\n \"total\": \"280.95\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SDQ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SDQ&departureDate=2021-03-10&returnDate=2021-03-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SJO\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-08\",\n \"price\": {\n \"total\": \"285.33\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SJO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SJO&departureDate=2021-03-01&returnDate=2021-03-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BDA\",\n \"departureDate\": \"2021-06-01\",\n \"returnDate\": \"2021-06-07\",\n \"price\": {\n \"total\": \"295.43\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BDA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BDA&departureDate=2021-06-01&returnDate=2021-06-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MDE\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"300.85\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MDE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MDE&departureDate=2021-03-29&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"YVR\",\n \"departureDate\": \"2021-02-22\",\n \"returnDate\": \"2021-02-23\",\n \"price\": {\n \"total\": \"301.00\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=YVR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=YVR&departureDate=2021-02-22&returnDate=2021-02-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MBJ\",\n \"departureDate\": \"2021-03-01\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"311.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MBJ&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MBJ&departureDate=2021-03-01&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"UIO\",\n \"departureDate\": \"2021-04-27\",\n \"returnDate\": \"2021-05-03\",\n \"price\": {\n \"total\": \"313.42\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=UIO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=UIO&departureDate=2021-04-27&returnDate=2021-05-03&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PLS\",\n \"departureDate\": \"2021-03-27\",\n \"returnDate\": \"2021-04-03\",\n \"price\": {\n \"total\": \"321.25\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PLS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PLS&departureDate=2021-03-27&returnDate=2021-04-03&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PAP\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-18\",\n \"price\": {\n \"total\": \"324.19\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PAP&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PAP&departureDate=2021-03-15&returnDate=2021-03-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"REK\",\n \"departureDate\": \"2021-02-19\",\n \"returnDate\": \"2021-02-24\",\n \"price\": {\n \"total\": \"327.67\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=REK&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=REK&departureDate=2021-02-19&returnDate=2021-02-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PTY\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-16\",\n \"price\": {\n \"total\": \"330.35\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PTY&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PTY&departureDate=2021-03-08&returnDate=2021-03-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"STI\",\n \"departureDate\": \"2021-03-08\",\n \"returnDate\": \"2021-03-10\",\n \"price\": {\n \"total\": \"344.45\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=STI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=STI&departureDate=2021-03-08&returnDate=2021-03-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"KEF\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-22\",\n \"price\": {\n \"total\": \"353.65\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=KEF&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=KEF&departureDate=2021-03-15&returnDate=2021-03-22&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"GRU\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-07\",\n \"price\": {\n \"total\": \"378.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=GRU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=GRU&departureDate=2021-04-06&returnDate=2021-04-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SAO\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-07\",\n \"price\": {\n \"total\": \"378.38\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SAO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SAO&departureDate=2021-04-06&returnDate=2021-04-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BRU\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"386.30\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BRU&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BRU&departureDate=2021-04-07&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BER\",\n \"departureDate\": \"2021-02-22\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"390.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BER&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BER&departureDate=2021-02-22&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PDL\",\n \"departureDate\": \"2021-03-12\",\n \"returnDate\": \"2021-03-18\",\n \"price\": {\n \"total\": \"404.21\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PDL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PDL&departureDate=2021-03-12&returnDate=2021-03-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DUB\",\n \"departureDate\": \"2021-04-05\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"415.37\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DUB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DUB&departureDate=2021-04-05&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CDG\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"415.59\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CDG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CDG&departureDate=2021-03-30&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PAR\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"415.59\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PAR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PAR&departureDate=2021-03-30&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HNL\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-04\",\n \"price\": {\n \"total\": \"417.16\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HNL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HNL&departureDate=2021-05-03&returnDate=2021-05-04&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CPH\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-02\",\n \"price\": {\n \"total\": \"424.69\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CPH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CPH&departureDate=2021-03-29&returnDate=2021-04-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"AMS\",\n \"departureDate\": \"2021-03-15\",\n \"returnDate\": \"2021-03-23\",\n \"price\": {\n \"total\": \"426.02\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=AMS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=AMS&departureDate=2021-03-15&returnDate=2021-03-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ZRH\",\n \"departureDate\": \"2021-03-31\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"437.00\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ZRH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ZRH&departureDate=2021-03-31&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LON\",\n \"departureDate\": \"2021-03-22\",\n \"returnDate\": \"2021-03-26\",\n \"price\": {\n \"total\": \"451.39\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LON&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LON&departureDate=2021-03-22&returnDate=2021-03-26&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LGW\",\n \"departureDate\": \"2021-03-31\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"453.19\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LGW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LGW&departureDate=2021-03-31&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MAN\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-04-01\",\n \"price\": {\n \"total\": \"458.49\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MAN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MAN&departureDate=2021-03-24&returnDate=2021-04-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CWB\",\n \"departureDate\": \"2021-02-27\",\n \"returnDate\": \"2021-03-02\",\n \"price\": {\n \"total\": \"465.05\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CWB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CWB&departureDate=2021-02-27&returnDate=2021-03-02&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LHR\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-03-29\",\n \"price\": {\n \"total\": \"467.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LHR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LHR&departureDate=2021-03-24&returnDate=2021-03-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MUC\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"487.17\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MUC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MUC&departureDate=2021-03-29&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FRA\",\n \"departureDate\": \"2021-03-25\",\n \"returnDate\": \"2021-03-29\",\n \"price\": {\n \"total\": \"488.32\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FRA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FRA&departureDate=2021-03-25&returnDate=2021-03-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"OPO\",\n \"departureDate\": \"2021-04-01\",\n \"returnDate\": \"2021-04-15\",\n \"price\": {\n \"total\": \"504.51\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=OPO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=OPO&departureDate=2021-04-01&returnDate=2021-04-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BCN\",\n \"departureDate\": \"2021-04-02\",\n \"returnDate\": \"2021-04-07\",\n \"price\": {\n \"total\": \"506.56\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BCN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BCN&departureDate=2021-04-02&returnDate=2021-04-07&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"GVA\",\n \"departureDate\": \"2021-02-16\",\n \"returnDate\": \"2021-02-23\",\n \"price\": {\n \"total\": \"519.33\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=GVA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=GVA&departureDate=2021-02-16&returnDate=2021-02-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PRG\",\n \"departureDate\": \"2021-05-12\",\n \"returnDate\": \"2021-05-18\",\n \"price\": {\n \"total\": \"523.77\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PRG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PRG&departureDate=2021-05-12&returnDate=2021-05-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NAP\",\n \"departureDate\": \"2021-04-10\",\n \"returnDate\": \"2021-04-19\",\n \"price\": {\n \"total\": \"525.76\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NAP&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NAP&departureDate=2021-04-10&returnDate=2021-04-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"VCE\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"526.08\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=VCE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=VCE&departureDate=2021-04-06&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MIL\",\n \"departureDate\": \"2021-04-26\",\n \"returnDate\": \"2021-05-04\",\n \"price\": {\n \"total\": \"526.14\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MIL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MIL&departureDate=2021-04-26&returnDate=2021-05-04&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"RAI\",\n \"departureDate\": \"2021-03-02\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"529.08\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=RAI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=RAI&departureDate=2021-03-02&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SNN\",\n \"departureDate\": \"2021-08-06\",\n \"returnDate\": \"2021-08-16\",\n \"price\": {\n \"total\": \"542.72\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SNN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SNN&departureDate=2021-08-06&returnDate=2021-08-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"VIE\",\n \"departureDate\": \"2021-05-02\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"543.27\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=VIE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=VIE&departureDate=2021-05-02&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FCO\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"544.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FCO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FCO&departureDate=2021-05-03&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ROM\",\n \"departureDate\": \"2021-03-29\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"544.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ROM&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ROM&departureDate=2021-03-29&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LIS\",\n \"departureDate\": \"2021-06-16\",\n \"returnDate\": \"2021-06-21\",\n \"price\": {\n \"total\": \"546.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LIS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LIS&departureDate=2021-06-16&returnDate=2021-06-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CAI\",\n \"departureDate\": \"2021-02-14\",\n \"returnDate\": \"2021-02-17\",\n \"price\": {\n \"total\": \"556.11\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CAI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CAI&departureDate=2021-02-14&returnDate=2021-02-17&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TYO\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-05\",\n \"price\": {\n \"total\": \"559.26\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TYO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TYO&departureDate=2021-05-03&returnDate=2021-05-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MAD\",\n \"departureDate\": \"2021-04-05\",\n \"returnDate\": \"2021-04-13\",\n \"price\": {\n \"total\": \"562.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MAD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MAD&departureDate=2021-04-05&returnDate=2021-04-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NCE\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-19\",\n \"price\": {\n \"total\": \"569.99\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NCE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NCE&departureDate=2021-05-11&returnDate=2021-05-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"EDI\",\n \"departureDate\": \"2021-05-26\",\n \"returnDate\": \"2021-06-09\",\n \"price\": {\n \"total\": \"597.11\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=EDI&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=EDI&departureDate=2021-05-26&returnDate=2021-06-09&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"WAW\",\n \"departureDate\": \"2021-04-06\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"599.33\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=WAW&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=WAW&departureDate=2021-04-06&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"FLR\",\n \"departureDate\": \"2021-05-08\",\n \"returnDate\": \"2021-05-13\",\n \"price\": {\n \"total\": \"607.25\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=FLR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=FLR&departureDate=2021-05-08&returnDate=2021-05-13&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"NBO\",\n \"departureDate\": \"2021-02-19\",\n \"returnDate\": \"2021-02-21\",\n \"price\": {\n \"total\": \"613.13\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=NBO&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=NBO&departureDate=2021-02-19&returnDate=2021-02-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ATH\",\n \"departureDate\": \"2021-03-26\",\n \"returnDate\": \"2021-03-30\",\n \"price\": {\n \"total\": \"627.07\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ATH&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ATH&departureDate=2021-03-26&returnDate=2021-03-30&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TLV\",\n \"departureDate\": \"2021-05-04\",\n \"returnDate\": \"2021-05-12\",\n \"price\": {\n \"total\": \"629.16\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TLV&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TLV&departureDate=2021-05-04&returnDate=2021-05-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DEL\",\n \"departureDate\": \"2021-03-28\",\n \"returnDate\": \"2021-04-08\",\n \"price\": {\n \"total\": \"637.84\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DEL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DEL&departureDate=2021-03-28&returnDate=2021-04-08&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BOM\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-03-31\",\n \"price\": {\n \"total\": \"648.51\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BOM&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BOM&departureDate=2021-03-24&returnDate=2021-03-31&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BLR\",\n \"departureDate\": \"2021-05-13\",\n \"returnDate\": \"2021-05-15\",\n \"price\": {\n \"total\": \"656.03\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BLR&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BLR&departureDate=2021-05-13&returnDate=2021-05-15&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BEY\",\n \"departureDate\": \"2021-03-04\",\n \"returnDate\": \"2021-03-11\",\n \"price\": {\n \"total\": \"665.76\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BEY&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BEY&departureDate=2021-03-04&returnDate=2021-03-11&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HKG\",\n \"departureDate\": \"2021-04-07\",\n \"returnDate\": \"2021-04-12\",\n \"price\": {\n \"total\": \"676.58\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HKG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HKG&departureDate=2021-04-07&returnDate=2021-04-12&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CMN\",\n \"departureDate\": \"2021-08-09\",\n \"returnDate\": \"2021-08-18\",\n \"price\": {\n \"total\": \"678.84\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CMN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CMN&departureDate=2021-08-09&returnDate=2021-08-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DXB\",\n \"departureDate\": \"2021-02-17\",\n \"returnDate\": \"2021-02-24\",\n \"price\": {\n \"total\": \"689.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DXB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DXB&departureDate=2021-02-17&returnDate=2021-02-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ACC\",\n \"departureDate\": \"2021-05-16\",\n \"returnDate\": \"2021-05-24\",\n \"price\": {\n \"total\": \"689.85\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ACC&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ACC&departureDate=2021-05-16&returnDate=2021-05-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MAA\",\n \"departureDate\": \"2021-02-15\",\n \"returnDate\": \"2021-02-24\",\n \"price\": {\n \"total\": \"705.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MAA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MAA&departureDate=2021-02-15&returnDate=2021-02-24&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"HYD\",\n \"departureDate\": \"2021-02-19\",\n \"returnDate\": \"2021-02-21\",\n \"price\": {\n \"total\": \"715.83\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=HYD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=HYD&departureDate=2021-02-19&returnDate=2021-02-21&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"LOS\",\n \"departureDate\": \"2021-05-03\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"726.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=LOS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=LOS&departureDate=2021-05-03&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CPT\",\n \"departureDate\": \"2021-02-17\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"750.06\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CPT&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CPT&departureDate=2021-02-17&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MNL\",\n \"departureDate\": \"2021-05-12\",\n \"returnDate\": \"2021-05-20\",\n \"price\": {\n \"total\": \"769.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MNL&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MNL&departureDate=2021-05-12&returnDate=2021-05-20&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SIN\",\n \"departureDate\": \"2021-05-07\",\n \"returnDate\": \"2021-05-14\",\n \"price\": {\n \"total\": \"771.10\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SIN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SIN&departureDate=2021-05-07&returnDate=2021-05-14&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"JNB\",\n \"departureDate\": \"2021-03-03\",\n \"returnDate\": \"2021-03-06\",\n \"price\": {\n \"total\": \"772.28\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=JNB&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=JNB&departureDate=2021-03-03&returnDate=2021-03-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BJS\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-18\",\n \"price\": {\n \"total\": \"773.66\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BJS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BJS&departureDate=2021-05-11&returnDate=2021-05-18&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SGN\",\n \"departureDate\": \"2021-05-12\",\n \"returnDate\": \"2021-05-19\",\n \"price\": {\n \"total\": \"773.97\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SGN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SGN&departureDate=2021-05-12&returnDate=2021-05-19&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SHA\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-17\",\n \"price\": {\n \"total\": \"789.66\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SHA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SHA&departureDate=2021-05-11&returnDate=2021-05-17&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"BKK\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-04-06\",\n \"price\": {\n \"total\": \"798.98\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=BKK&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=BKK&departureDate=2021-03-24&returnDate=2021-04-06&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TIA\",\n \"departureDate\": \"2021-02-21\",\n \"returnDate\": \"2021-03-01\",\n \"price\": {\n \"total\": \"803.50\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TIA&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TIA&departureDate=2021-02-21&returnDate=2021-03-01&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"IST\",\n \"departureDate\": \"2021-02-25\",\n \"returnDate\": \"2021-03-05\",\n \"price\": {\n \"total\": \"810.06\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=IST&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=IST&departureDate=2021-02-25&returnDate=2021-03-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"TPE\",\n \"departureDate\": \"2021-03-24\",\n \"returnDate\": \"2021-03-29\",\n \"price\": {\n \"total\": \"828.16\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=TPE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=TPE&departureDate=2021-03-24&returnDate=2021-03-29&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"ICN\",\n \"departureDate\": \"2021-03-30\",\n \"returnDate\": \"2021-04-05\",\n \"price\": {\n \"total\": \"861.49\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=ICN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=ICN&departureDate=2021-03-30&returnDate=2021-04-05&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"MLE\",\n \"departureDate\": \"2021-05-04\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"977.29\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=MLE&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=MLE&departureDate=2021-05-04&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"DPS\",\n \"departureDate\": \"2021-05-11\",\n \"returnDate\": \"2021-05-23\",\n \"price\": {\n \"total\": \"992.41\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=DPS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=DPS&departureDate=2021-05-11&returnDate=2021-05-23&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"PVG\",\n \"departureDate\": \"2021-05-04\",\n \"returnDate\": \"2021-05-10\",\n \"price\": {\n \"total\": \"1208.40\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=PVG&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=PVG&departureDate=2021-05-04&returnDate=2021-05-10&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"SYD\",\n \"departureDate\": \"2021-05-09\",\n \"returnDate\": \"2021-05-16\",\n \"price\": {\n \"total\": \"1266.32\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=SYD&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=SYD&departureDate=2021-05-09&returnDate=2021-05-16&adults=1&nonStop=false\"\n }\n },\n {\n \"type\": \"flight-destination\",\n \"origin\": \"BOS\",\n \"destination\": \"CAN\",\n \"departureDate\": \"2021-04-25\",\n \"returnDate\": \"2021-05-02\",\n \"price\": {\n \"total\": \"1427.25\"\n },\n \"links\": {\n \"flightDates\": \"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=BOS&destination=CAN&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DURATION\",\n \"flightOffers\": \"https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=BOS&destinationLocationCode=CAN&departureDate=2021-04-25&returnDate=2021-05-02&adults=1&nonStop=false\"\n }\n }\n ],\n \"dictionaries\": {\n \"currencies\": {\n \"USD\": \"US DOLLAR\"\n },\n \"locations\": {\n \"PVG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PUDONG INTL\"\n },\n \"JAX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JACKSONVILLE INTL\"\n },\n \"NAS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LYNDEN PINDLING INTL\"\n },\n \"BRU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BRUSSELS AIRPORT\"\n },\n \"CDG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHARLES DE GAULLE\"\n },\n \"HNL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DANIEL K INOUYE INTL\"\n },\n \"STI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CIBAO INTL\"\n },\n \"BJS\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"BEIJING\"\n },\n \"CLT\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DOUGLAS INTL\"\n },\n \"SLC\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SALT LAKE CITY INTL\"\n },\n \"ZRH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ZURICH AIRPORT\"\n },\n \"GUA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LA AURORA INTL\"\n },\n \"STT\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CYRIL E. KING\"\n },\n \"DFW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DALLAS FT WORTH INTL\"\n },\n \"NBO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOMO KENYATTA INTL\"\n },\n \"CUN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"SDQ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LAS AMERICAS INTL\"\n },\n \"BKK\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SUVARNABHUMI INTL\"\n },\n \"MIA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MIAMI INTL\"\n },\n \"CMN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MOHAMMED V\"\n },\n \"MYR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"LON\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"LONDON\"\n },\n \"BCN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AIRPORT\"\n },\n \"MAA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHENNAI INTERNATIONAL\"\n },\n \"KEF\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KEFLAVIK INTL\"\n },\n \"IAD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DULLES INTL\"\n },\n \"SEA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SEATTLE TACOMA INTL\"\n },\n \"DXB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DUBAI INTL\"\n },\n \"HOU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"WILLIAM P HOBBY\"\n },\n \"LOS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MURTALA MUHAMMED INTL\"\n },\n \"NCE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"COTE D AZUR\"\n },\n \"IAH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GEORGE BUSH INTERCONT\"\n },\n \"MIL\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"MILAN\"\n },\n \"MAD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ADOLFO SUAREZ BARAJAS\"\n },\n \"GVA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GENEVA INTERNATIONAL\"\n },\n \"FCO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FIUMICINO\"\n },\n \"RSW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SOUTHWEST FLORIDA INTL\"\n },\n \"VCE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MARCO POLO\"\n },\n \"UIO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MARISCAL SUCRE INTL\"\n },\n \"YYZ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LESTER B. PEARSON INTL\"\n },\n \"MAN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MANCHESTER AIRPORT\"\n },\n \"LGW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GATWICK\"\n },\n \"BDA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"L.F WADE INTERNATIONAL\"\n },\n \"TPA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TAMPA INTL\"\n },\n \"DPS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NGURAH RAI\"\n },\n \"FLL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FLL INTL\"\n },\n \"TPE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TAIWAN TAOYUAN INTL\"\n },\n \"BLR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KEMPEGOWDA INTL\"\n },\n \"FLR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PERETOLA\"\n },\n \"CWB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AFONSO PENA INTL\"\n },\n \"SNN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SHANNON\"\n },\n \"HYD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"RAJIV GANDHI INTL\"\n },\n \"MBJ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SANGSTER INTL\"\n },\n \"PHL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PHILADELPHIA INTL\"\n },\n \"LHR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HEATHROW\"\n },\n \"SFO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SAN FRANCISCO INTL\"\n },\n \"PHX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SKY HARBOR INTL\"\n },\n \"ACC\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KOTOKA INTL\"\n },\n \"RDU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"IST\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ISTANBUL AIRPORT\"\n },\n \"TYO\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"TOKYO\"\n },\n \"MSP\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ST PAUL INTL\"\n },\n \"TIA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NENE TEREZA INTL\"\n },\n \"BER\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BRANDENBURG\"\n },\n \"LIM\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JORGE CHAVEZ INTL\"\n },\n \"MSY\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LOUIS ARMSTRONG INTL\"\n },\n \"BNA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"ATH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ATHENS INT E VENIZELOS\"\n },\n \"ICN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INCHEON INTERNATIONAL\"\n },\n \"LIS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AIRPORT\"\n },\n \"BEY\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"RAFIC HARIRI INTL\"\n },\n \"MCO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"ORLANDO INTL\"\n },\n \"ATL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HARTSFIELD-JACKSON INT\"\n },\n \"REK\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"REYKJAVIK\"\n },\n \"CPH\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KASTRUP\"\n },\n \"SGN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TAN SON NHAT INTL\"\n },\n \"PAP\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TOUSSAINT LOUVERTURE\"\n },\n \"LAS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MCCARRAN INTERNATIONAL\"\n },\n \"JNB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"O.R. TAMBO INTL\"\n },\n \"PAR\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"PARIS\"\n },\n \"LAX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LOS ANGELES INTL\"\n },\n \"PRG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"RUZYNE\"\n },\n \"CHI\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"CHICAGO\"\n },\n \"CPT\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CAPE TOWN INTL\"\n },\n \"MLE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"VELANA INTERNATIONAL\"\n },\n \"EDI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AIRPORT\"\n },\n \"SHA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HONGQIAO INTL\"\n },\n \"AUA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"REINA BEATRIX\"\n },\n \"JFK\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOHN F KENNEDY INTL\"\n },\n \"MDE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOSE MARIA CORDOVA INT\"\n },\n \"OPO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FRANCISCO SA CARNEIRO\"\n },\n \"CHS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL AFB\"\n },\n \"BWI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BALTIMORE/WASH. INTL\"\n },\n \"YTO\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"TORONTO\"\n },\n \"PBI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PALM BEACH INTL\"\n },\n \"MUC\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"MUNICH INTERNATIONAL\"\n },\n \"BOG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EL DORADO INTL\"\n },\n \"SYD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"KINGSFORD SMITH\"\n },\n \"AUS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"AUSTIN-BERGSTROM INTL\"\n },\n \"BOM\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHHATRAPATI S MAHARAJ\"\n },\n \"DCA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"R REAGAN NAT\"\n },\n \"HKG\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"AMS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SCHIPHOL AIRPORT\"\n },\n \"BOS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EDWARD L LOGAN INTL\"\n },\n \"CAI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CAIRO INTL\"\n },\n \"ROM\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"ROME\"\n },\n \"CAN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BAIYUN INTL\"\n },\n \"SIN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CHANGI\"\n },\n \"SAL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EL SALVADOR INTL\"\n },\n \"SAO\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"SAO PAULO\"\n },\n \"ORD\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"O HARE INTERNATIONAL\"\n },\n \"MEX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BENITO JUAREZ INTL\"\n },\n \"SAN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"ORL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"EXECUTIVE\"\n },\n \"WAS\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"WASHINGTON\"\n },\n \"SAV\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"HILTON HEAD INTL\"\n },\n \"MNL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NINOY AQUINO INTL\"\n },\n \"GRU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"GUARULHOS INTL\"\n },\n \"WAW\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FREDERIC CHOPIN\"\n },\n \"DUB\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DUBLIN INTERNATIONAL\"\n },\n \"SRQ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"PTY\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"TOCUMEN INTL\"\n },\n \"YVR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"PLS\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PROVIDENCIALES\"\n },\n \"SJO\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JUAN SANTAMARIA INTL\"\n },\n \"NYC\": {\n \"subType\": \"CITY\",\n \"detailedName\": \"NEW YORK\"\n },\n \"PDL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"JOAO PAULO II\"\n },\n \"TLV\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"BEN GURION INTL\"\n },\n \"SJU\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"LUIS MUNOZ MARIN INTL\"\n },\n \"EWR\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"NEWARK LIBERTY INTL\"\n },\n \"PUJ\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INTERNATIONAL\"\n },\n \"PDX\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PORTLAND INTL\"\n },\n \"DEL\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"INDIRA GANDHI INTL\"\n },\n \"DEN\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"DENVER INTERNATIONAL\"\n },\n \"VIE\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"SCHWECHAT INTL\"\n },\n \"FRA\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"FRANKFURT INTL\"\n },\n \"RAI\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"PRAIA INTL\"\n },\n \"NAP\": {\n \"subType\": \"AIRPORT\",\n \"detailedName\": \"CAPODICHINO AIRPORT\"\n }\n }\n },\n \"meta\": {\n \"currency\": \"USD\",\n \"links\": {\n \"self\": \"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=BOS&departureDate=2021-02-13,2021-08-11&oneWay=false&duration=1,15&nonStop=false&viewBy=DESTINATION\"\n },\n \"defaults\": {\n \"departureDate\": \"2021-02-13,2021-08-11\",\n \"oneWay\": false,\n \"duration\": \"1,15\",\n \"nonStop\": false,\n \"viewBy\": \"DESTINATION\"\n }\n }\n}"
}
]
},
{
"name": "Flight Cheapest Date Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or No price results found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 404) {",
" pm.expect(data.errors[0].code).to.equal(6003);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-dates?origin=MAD&destination=LON&departureDate={{departureDate}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-dates"
],
"query": [
{
"key": "origin",
"value": "MAD"
},
{
"key": "destination",
"value": "LON"
},
{
"key": "departureDate",
"value": "{{departureDate}}"
}
]
},
"description": "The Flight Cheapest Date Search REST/JSON API is an open search API that enables you to find the cheapest dates to a given city or airport.\n\nThe API returns a list of flight-date options containing the flight dates and the flight price. Links to the Flight Low-fare Search API are also provided to allow you to confirm the price and availability of the fare."
},
"response": [
{
"name": "Flight Cheapest Date Search",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json",
"disabled": true
}
],
"body": {
"mode": "formdata",
"formdata": []
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/flight-dates?origin=NCE&destination=PAR&duration=1",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"flight-dates"
],
"query": [
{
"key": "origin",
"value": "NCE"
},
{
"key": "destination",
"value": "PAR"
},
{
"key": "duration",
"value": "1"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Access-Control-Allow-Headers",
"value": "origin, x-requested-with, accept, Content-Type, Authorization",
"name": "Access-Control-Allow-Headers",
"description": "Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request."
},
{
"key": "Access-Control-Allow-Methods",
"value": "*",
"name": "Access-Control-Allow-Methods",
"description": "Specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request."
},
{
"key": "Access-Control-Allow-Origin",
"value": "*",
"name": "Access-Control-Allow-Origin",
"description": "Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."
},
{
"key": "Access-Control-Max-Age",
"value": "3628800",
"name": "Access-Control-Max-Age",
"description": "Indicates how long the results of a preflight request can be cached in seconds."
},
{
"key": "Ama-Gateway-Request-Id",
"value": "rrt-01702c60aa57acf29-a-de-955-12242362-2",
"name": "Ama-Gateway-Request-Id",
"description": "Custom header"
},
{
"key": "Ama-Internal-Message-Version",
"value": "14.1",
"name": "Ama-Internal-Message-Version",
"description": "Custom header"
},
{
"key": "Ama-Request-Id",
"value": "7L38L6PDKA",
"name": "Ama-Request-Id",
"description": "Custom header"
},
{
"key": "Connection",
"value": "keep-alive",
"name": "Connection",
"description": "Options that are desired for the connection"
},
{
"key": "Content-Encoding",
"value": "gzip",
"name": "Content-Encoding",
"description": "The type of encoding used on the data."
},
{
"key": "Content-Type",
"value": "application/vnd.amadeus+json",
"name": "Content-Type",
"description": "The mime type of this content"
},
{
"key": "Date",
"value": "Thu, 05 Apr 2018 08:14:34 GMT",
"name": "Date",
"description": "The date and time that the message was sent"
},
{
"key": "Server",
"value": "Amadeus",
"name": "Server",
"description": "A name for the server"
},
{
"key": "Transfer-Encoding",
"value": "chunked",
"name": "Transfer-Encoding",
"description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity."
}
],
"cookie": [],
"body": "{\"data\":[{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-06\",\"returnDate\":\"2018-04-07\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-06&returnDate=2018-04-07&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-25\",\"returnDate\":\"2018-05-26\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-25&returnDate=2018-05-26&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-01\",\"returnDate\":\"2018-06-02\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-01&returnDate=2018-06-02&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-08\",\"returnDate\":\"2018-06-09\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-08&returnDate=2018-06-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-15\",\"returnDate\":\"2018-06-16\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-15&returnDate=2018-06-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-22\",\"returnDate\":\"2018-06-23\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-22&returnDate=2018-06-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-07\",\"returnDate\":\"2018-04-08\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-07&returnDate=2018-04-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-08\",\"returnDate\":\"2018-04-09\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-08&returnDate=2018-04-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-09\",\"returnDate\":\"2018-04-10\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-09&returnDate=2018-04-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-10\",\"returnDate\":\"2018-04-11\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-10&returnDate=2018-04-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-11\",\"returnDate\":\"2018-04-12\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-11&returnDate=2018-04-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-12\",\"returnDate\":\"2018-04-13\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-12&returnDate=2018-04-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-15\",\"returnDate\":\"2018-04-16\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-15&returnDate=2018-04-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-16\",\"returnDate\":\"2018-04-17\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-16&returnDate=2018-04-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-17\",\"returnDate\":\"2018-04-18\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-17&returnDate=2018-04-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-18\",\"returnDate\":\"2018-04-19\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-18&returnDate=2018-04-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-19\",\"returnDate\":\"2018-04-20\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-19&returnDate=2018-04-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-23\",\"returnDate\":\"2018-04-24\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-23&returnDate=2018-04-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-24\",\"returnDate\":\"2018-04-25\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-24&returnDate=2018-04-25&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-30\",\"returnDate\":\"2018-05-01\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-30&returnDate=2018-05-01&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-02\",\"returnDate\":\"2018-05-03\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-02&returnDate=2018-05-03&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-07\",\"returnDate\":\"2018-05-08\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-07&returnDate=2018-05-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-14\",\"returnDate\":\"2018-05-15\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-14&returnDate=2018-05-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-15\",\"returnDate\":\"2018-05-16\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-15&returnDate=2018-05-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-24\",\"returnDate\":\"2018-05-25\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-24&returnDate=2018-05-25&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-29\",\"returnDate\":\"2018-05-30\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-29&returnDate=2018-05-30&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-30\",\"returnDate\":\"2018-05-31\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-30&returnDate=2018-05-31&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-31\",\"returnDate\":\"2018-06-01\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-31&returnDate=2018-06-01&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-02\",\"returnDate\":\"2018-06-03\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-02&returnDate=2018-06-03&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-04\",\"returnDate\":\"2018-06-05\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-04&returnDate=2018-06-05&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-05\",\"returnDate\":\"2018-06-06\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-05&returnDate=2018-06-06&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-06\",\"returnDate\":\"2018-06-07\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-06&returnDate=2018-06-07&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-07\",\"returnDate\":\"2018-06-08\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-07&returnDate=2018-06-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-09\",\"returnDate\":\"2018-06-10\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-09&returnDate=2018-06-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-10\",\"returnDate\":\"2018-06-11\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-10&returnDate=2018-06-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-11\",\"returnDate\":\"2018-06-12\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-11&returnDate=2018-06-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-12\",\"returnDate\":\"2018-06-13\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-12&returnDate=2018-06-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-13\",\"returnDate\":\"2018-06-14\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-13&returnDate=2018-06-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-14\",\"returnDate\":\"2018-06-15\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-14&returnDate=2018-06-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-16\",\"returnDate\":\"2018-06-17\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-16&returnDate=2018-06-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-17\",\"returnDate\":\"2018-06-18\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-17&returnDate=2018-06-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-18\",\"returnDate\":\"2018-06-19\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-18&returnDate=2018-06-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-19\",\"returnDate\":\"2018-06-20\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-19&returnDate=2018-06-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-20\",\"returnDate\":\"2018-06-21\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-20&returnDate=2018-06-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-21\",\"returnDate\":\"2018-06-22\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-21&returnDate=2018-06-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-23\",\"returnDate\":\"2018-06-24\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-23&returnDate=2018-06-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-25\",\"returnDate\":\"2018-06-26\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-25&returnDate=2018-06-26&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-26\",\"returnDate\":\"2018-06-27\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-26&returnDate=2018-06-27&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-02\",\"returnDate\":\"2018-07-03\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-02&returnDate=2018-07-03&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-03\",\"returnDate\":\"2018-07-04\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-03&returnDate=2018-07-04&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-16\",\"returnDate\":\"2018-07-17\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-16&returnDate=2018-07-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-17\",\"returnDate\":\"2018-07-18\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-17&returnDate=2018-07-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-18\",\"returnDate\":\"2018-07-19\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-18&returnDate=2018-07-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-26\",\"returnDate\":\"2018-05-27\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-26&returnDate=2018-05-27&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-19\",\"returnDate\":\"2018-05-20\",\"price\":{\"total\":\"139.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-19&returnDate=2018-05-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-20\",\"returnDate\":\"2018-04-21\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-20&returnDate=2018-04-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-25\",\"returnDate\":\"2018-04-26\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-25&returnDate=2018-04-26&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-13\",\"returnDate\":\"2018-07-14\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-13&returnDate=2018-07-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-14\",\"returnDate\":\"2018-07-15\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-14&returnDate=2018-07-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-20\",\"returnDate\":\"2018-07-21\",\"price\":{\"total\":\"140.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-20&returnDate=2018-07-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-14\",\"returnDate\":\"2018-04-15\",\"price\":{\"total\":\"148.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-14&returnDate=2018-04-15&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-30\",\"returnDate\":\"2018-07-01\",\"price\":{\"total\":\"149.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-30&returnDate=2018-07-01&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-21\",\"returnDate\":\"2018-07-22\",\"price\":{\"total\":\"149.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-21&returnDate=2018-07-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-22\",\"returnDate\":\"2018-04-23\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-22&returnDate=2018-04-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-29\",\"returnDate\":\"2018-04-30\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-29&returnDate=2018-04-30&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-04\",\"returnDate\":\"2018-07-05\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-04&returnDate=2018-07-05&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-09\",\"returnDate\":\"2018-07-10\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-09&returnDate=2018-07-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-11\",\"returnDate\":\"2018-07-12\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-11&returnDate=2018-07-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-12\",\"returnDate\":\"2018-07-13\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-12&returnDate=2018-07-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-19\",\"returnDate\":\"2018-07-20\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-19&returnDate=2018-07-20&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-23\",\"returnDate\":\"2018-07-24\",\"price\":{\"total\":\"150.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-23&returnDate=2018-07-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-13\",\"returnDate\":\"2018-04-14\",\"price\":{\"total\":\"151.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-13&returnDate=2018-04-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-29\",\"returnDate\":\"2018-06-30\",\"price\":{\"total\":\"151.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-29&returnDate=2018-06-30&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-21\",\"returnDate\":\"2018-04-22\",\"price\":{\"total\":\"159.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-21&returnDate=2018-04-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-26\",\"returnDate\":\"2018-04-27\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-26&returnDate=2018-04-27&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-03\",\"returnDate\":\"2018-05-04\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-03&returnDate=2018-05-04&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-10\",\"returnDate\":\"2018-05-11\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-10&returnDate=2018-05-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-22\",\"returnDate\":\"2018-05-23\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-22&returnDate=2018-05-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-28\",\"returnDate\":\"2018-05-29\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-28&returnDate=2018-05-29&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-27\",\"returnDate\":\"2018-06-28\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-27&returnDate=2018-06-28&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-01\",\"returnDate\":\"2018-07-02\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-01&returnDate=2018-07-02&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-05\",\"returnDate\":\"2018-07-06\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-05&returnDate=2018-07-06&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-10\",\"returnDate\":\"2018-07-11\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-10&returnDate=2018-07-11&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-15\",\"returnDate\":\"2018-07-16\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-15&returnDate=2018-07-16&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-06\",\"returnDate\":\"2018-05-07\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-06&returnDate=2018-05-07&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-22\",\"returnDate\":\"2018-07-23\",\"price\":{\"total\":\"163.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-22&returnDate=2018-07-23&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-07\",\"returnDate\":\"2018-07-08\",\"price\":{\"total\":\"168.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-07&returnDate=2018-07-08&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-08\",\"returnDate\":\"2018-07-09\",\"price\":{\"total\":\"173.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-08&returnDate=2018-07-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-18\",\"returnDate\":\"2018-05-19\",\"price\":{\"total\":\"174.73\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-18&returnDate=2018-05-19&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-28\",\"returnDate\":\"2018-04-29\",\"price\":{\"total\":\"178.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-28&returnDate=2018-04-29&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-05\",\"returnDate\":\"2018-05-06\",\"price\":{\"total\":\"178.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-05&returnDate=2018-05-06&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-20\",\"returnDate\":\"2018-05-21\",\"price\":{\"total\":\"184.61\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-20&returnDate=2018-05-21&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-12\",\"returnDate\":\"2018-05-13\",\"price\":{\"total\":\"187.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-12&returnDate=2018-05-13&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-24\",\"returnDate\":\"2018-06-25\",\"price\":{\"total\":\"188.95\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-24&returnDate=2018-06-25&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-01\",\"returnDate\":\"2018-05-02\",\"price\":{\"total\":\"194.62\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-01&returnDate=2018-05-02&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-08\",\"returnDate\":\"2018-05-09\",\"price\":{\"total\":\"194.62\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-08&returnDate=2018-05-09&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-04-27\",\"returnDate\":\"2018-04-28\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-04-27&returnDate=2018-04-28&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-04\",\"returnDate\":\"2018-05-05\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-04&returnDate=2018-05-05&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-11\",\"returnDate\":\"2018-05-12\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-11&returnDate=2018-05-12&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-09\",\"returnDate\":\"2018-05-10\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-09&returnDate=2018-05-10&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-13\",\"returnDate\":\"2018-05-14\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-13&returnDate=2018-05-14&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-16\",\"returnDate\":\"2018-05-17\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-16&returnDate=2018-05-17&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-17\",\"returnDate\":\"2018-05-18\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-17&returnDate=2018-05-18&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-21\",\"returnDate\":\"2018-05-22\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-21&returnDate=2018-05-22&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-23\",\"returnDate\":\"2018-05-24\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-23&returnDate=2018-05-24&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-05-27\",\"returnDate\":\"2018-05-28\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-05-27&returnDate=2018-05-28&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-03\",\"returnDate\":\"2018-06-04\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-03&returnDate=2018-06-04&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-06-28\",\"returnDate\":\"2018-06-29\",\"price\":{\"total\":\"198.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-06-28&returnDate=2018-06-29&adults=1&nonStop=false\"}},{\"type\":\"flight-date\",\"origin\":\"NCE\",\"destination\":\"PAR\",\"departureDate\":\"2018-07-06\",\"returnDate\":\"2018-07-07\",\"price\":{\"total\":\"222.45\"},\"links\":{\"flightDestinations\":\"https://test.api.amadeus.com/v1/shopping/flight-destinations?origin=NCE&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\",\"flightOffers\":\"https://test.api.amadeus.com/v1/shopping/flight-offers?origin=NCE&destination=PAR&departureDate=2018-07-06&returnDate=2018-07-07&adults=1&nonStop=false\"}}],\"dictionaries\":{\"currencies\":{\"EUR\":\"EURO\"},\"locations\":{\"PAR\":{\"subType\":\"CITY\",\"detailedName\":\"PARIS\"},\"NCE\":{\"subType\":\"AIRPORT\",\"detailedName\":\"COTE D AZUR\"}}},\"meta\":{\"currency\":\"EUR\",\"links\":{\"self\":\"https://test.api.amadeus.com/v1/shopping/flight-dates?origin=NCE&destination=PAR&departureDate=2018-04-06,2018-10-02&oneWay=false&duration=1&nonStop=false&viewBy=DURATION\"},\"defaults\":{\"departureDate\":\"2018-04-06,2018-10-02\",\"oneWay\":false,\"nonStop\":false,\"viewBy\":\"DURATION\"}}}"
}
]
},
{
"name": "Flight Availabilities Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
},
{
"key": "X-HTTP-Method-Override",
"value": "GET",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"originDestinations\": [\n {\n \"id\": \"1\",\n \"originLocationCode\": \"BOS\",\n \"destinationLocationCode\": \"MAD\",\n \"departureDateTime\": {\n \"date\": \"{{departureDate}}\",\n \"time\": \"21:15:00\"\n }\n }\n ],\n \"travelers\": [\n {\n \"id\": \"1\",\n \"travelerType\": \"ADULT\"\n },\n {\n \"id\": \"2\",\n \"travelerType\": \"CHILD\"\n }\n ],\n \"sources\": [\n \"GDS\"\n ]\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/availability/flight-availabilities",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"availability",
"flight-availabilities"
]
},
"description": "The Amadeus Flight Availability API provides a list of flights with seats for sale on a given itinerary and the quantity of seats available in different fare classes. In addition to availability, the API also returns carrier and aircraft information, the departure and arrival terminals, schedule, and route."
},
"response": []
},
{
"name": "Travel Recommendations",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/recommended-locations?cityCodes=PAR&travelerCountryCode=FR",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"recommended-locations"
],
"query": [
{
"key": "cityCodes",
"value": "PAR"
},
{
"key": "travelerCountryCode",
"value": "FR"
}
]
}
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Flight Schedule",
"item": [
{
"name": "On Demand Flight Status",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v2/schedule/flights?carrierCode=BA&flightNumber=986&scheduledDepartureDate={{departureDate}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"schedule",
"flights"
],
"query": [
{
"key": "carrierCode",
"value": "BA"
},
{
"key": "flightNumber",
"value": "986"
},
{
"key": "scheduledDepartureDate",
"value": "{{departureDate}}"
}
]
},
"description": "The Flight Status API provides real-time flight schedule data including up-to-date departure and arrival times, terminal and gate information, flight duration and real-time delay status. Help travelers track the live status of their flight and enjoy a stress-free trip."
},
"response": []
},
{
"name": "Flight Delay Prediction",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code\r",
"pm.test(\"Response status code is 200\", function () {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"\r",
"// Function to get header value by name with fallback\r",
"function getHeaderValue(headerName, fallbackHeaderName) {\r",
" let headers = pm.response.headers;\r",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r",
"}\r",
"\r",
"// Log the specific headers\r",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));\r",
"\r",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r",
"console.log(headerName + \": \" + amaRequestId);\r",
"\r",
"// Set up\r",
"// Get Response in variable\r",
"const response = pm.response.json();\r",
"\r",
"// Get Query in variable\r",
"let query = {};\r",
"pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r",
"\r",
"// Create global variable\r",
"let text_prediction = \"\";\r",
"let text_value = \"\";\r",
"let max_scale = 0;\r",
"\r",
"\r",
"// process calculation only for succeful reply\r",
"if (pm.response.status == \"OK\"){\r",
"\r",
" let prediction = [];\r",
" let value = []\r",
"\r",
" // Get and order traffic data per month\r",
" for (let i = 0; i < response.meta.count; i++) {\r",
" prediction.push(parseFloat(response.data[i].probability).toFixed(2));\r",
" value.push('\"' + response.data[i].result + '\"');\r",
" };\r",
"\r",
" // Convert to text to be used by the template variable\r",
" text_prediction = '[' + prediction.join() + ']';\r",
" text_value = '[' + value.join() + ']';\r",
" max_scale = Math.max(...prediction) + 0.2\r",
"\r",
"}\r",
"\r",
"// Define visualizer template\r",
"let template_success = `\r",
"<table style=\"width:50%\">\r",
" <tr>\r",
" <th>\r",
" <canvas id=\"travelerTraffic\"></canvas>\r",
" <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r",
" <script src=\"https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2\"></script>\r",
" <script> \r",
" const labels = ${text_value}; \r",
" const data = {\r",
" labels: labels, \r",
" datasets: [\r",
" { \r",
" label: \"Preidiction\", \r",
" backgroundColor: \"rgba(0, 94, 184,0.4)\", \r",
" borderColor: \"rgb(0, 94, 184)\", \r",
" data: ${text_prediction},\r",
" tension: 0.5,\r",
" fill: true\r",
" }\r",
" ] \r",
" };\r",
" const config = { \r",
" type: \"line\", \r",
" data: data,\r",
" plugins: [ChartDataLabels], \r",
" options: {\r",
" responsive: true,\r",
" plugins: {\r",
" legend: {\r",
" position: 'top',\r",
" display: false\r",
" },\r",
" title: {\r",
" display: true,\r",
" text: 'Delay prediction for flight ${query.carrierCode} ${query.flightNumber} from ${query.originLocationCode} to ${query.destinationLocationCode} on the ${query.departureDate}'\r",
" },\r",
" datalabels: {\r",
" color: \"rgb(0, 94, 184)\",\r",
" anchor: 'end',\r",
" align: 'end',\r",
" }\r",
" },\r",
" scales: {\r",
" y: {\r",
" min: 0,\r",
" max: ${max_scale},\r",
" }\r",
" },\r",
" } \r",
" } \r",
" </script> \r",
" <script>\r",
" const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config )\r",
" </script\r",
" </th>\r",
" </tr>\r",
"</table>\r",
"`;\r",
"\r",
"let template_nodata = \"OUPS there is no data for this city or period\";\r",
"\r",
"let template_default = \"Sorry, we can't visualize\";\r",
"\r",
"// Set visualizer\r",
"if (pm.response.status == \"OK\"){\r",
" if (response.meta.count > 0){\r",
" // When there is data, return a bar graph\r",
" pm.visualizer.set(template_success, {\r",
" response: pm.response.json()\r",
" });\r",
" }else{\r",
" // when there is no data, return a message\r",
" pm.visualizer.set(template_nodata, {\r",
" response: pm.response.json()\r",
" });\r",
" }\r",
"}else{\r",
" // return a message when we can't visualise ( status =! 200 )\r",
" pm.visualizer.set(template_default, {\r",
" response: pm.response.json()\r",
" });\r",
"}"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/travel/predictions/flight-delay?originLocationCode=NCE&destinationLocationCode=IST&departureDate=2022-11-01&departureTime=18:20:00&arrivalDate=2022-11-01&arrivalTime=22:15:00&aircraftCode=321&carrierCode=TK&flightNumber=1816&duration=PT31H10M",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"travel",
"predictions",
"flight-delay"
],
"query": [
{
"key": "originLocationCode",
"value": "NCE"
},
{
"key": "destinationLocationCode",
"value": "IST"
},
{
"key": "departureDate",
"value": "2022-11-01"
},
{
"key": "departureTime",
"value": "18:20:00"
},
{
"key": "arrivalDate",
"value": "2022-11-01"
},
{
"key": "arrivalTime",
"value": "22:15:00"
},
{
"key": "aircraftCode",
"value": "321"
},
{
"key": "carrierCode",
"value": "TK"
},
{
"key": "flightNumber",
"value": "1816"
},
{
"key": "duration",
"value": "PT31H10M"
}
]
},
"description": "The Flight Delay Prediction API allows developers to forecast the chances for a flight to be delayed."
},
"response": []
},
{
"name": "Airport On-Time Performance",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/airport/predictions/on-time?airportCode=JFK&date=2022-11-01",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"airport",
"predictions",
"on-time"
],
"query": [
{
"key": "airportCode",
"value": "JFK"
},
{
"key": "date",
"value": "2022-11-01"
}
]
},
"description": "Returns a percentage of on-time flight departures from a given airport."
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Airport",
"item": [
{
"name": "Airport & City Search by Keyword",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations?subType=CITY,AIRPORT&keyword=MUC&countryCode=DE",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations"
],
"query": [
{
"key": "subType",
"value": "CITY,AIRPORT"
},
{
"key": "keyword",
"value": "MUC"
},
{
"key": "countryCode",
"value": "DE"
}
]
},
"description": "The Airport & City Search REST/JSON API provides the full name, IATA code and geographical information of cities or airports that match a given keyword parameter, for use in flight searches.\n\nThe response provides a list of cities and/or airports, sorted by travellers' traffic score, which is based on the estimated yearly number of travellers by airport or city. Airports and cities with the highest traffic are at the top of the list.\n\nThis operation allows retrieving the list of locations (airports or cities) that contain a specific keyword in the start of any word in their name or in the start of their IATA code."
},
"response": []
},
{
"name": "Airport & City Search by Id",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "formdata",
"formdata": []
},
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/CMUC",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"CMUC"
]
},
"description": "The Airport & City Search REST/JSON API provides the full name, IATA code and geographical information of cities or airports that match a given keyword parameter, for use in flight searches.\n\nThe response provides a list of cities and/or airports, sorted by travellers' traffic score, which is based on the estimated yearly number of travellers by airport or city. Airports and cities with the highest traffic are at the top of the list.\n\nThis operation allows retrieving a locations (airports or cities) based on its id."
},
"response": []
},
{
"name": "Airport Nearest Relevant",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "",
"value": "",
"disabled": true
}
],
"body": {
"mode": "formdata",
"formdata": []
},
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/airports?latitude=49.0000&longitude=2.55",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"airports"
],
"query": [
{
"key": "latitude",
"value": "49.0000"
},
{
"key": "longitude",
"value": "2.55"
},
{
"key": "",
"value": "",
"disabled": true
},
{
"key": "",
"value": "",
"disabled": true
},
{
"key": "",
"value": "",
"disabled": true
}
]
},
"description": "The Airport Nearest Relevant REST/JSON API returns a list of relevant airports within a radius of 500 km of a given point. The relevance of an airport is based on the estimated yearly flight traffic of the airport and on the distance from the point. The airports are sorted from most relevant to least relevant by default. Other sorting possibilities are offered (by distance, by traffic score)."
},
"response": []
},
{
"name": "Airport Routes",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code\r",
"pm.test(\"Response status code is 200\", function () {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"\r",
"\r",
"// Function to get header value by name with fallback\r",
"function getHeaderValue(headerName, fallbackHeaderName) {\r",
" let headers = pm.response.headers;\r",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r",
"}\r",
"\r",
"// Log the specific headers\r",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));\r",
"\r",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r",
"console.log(headerName + \": \" + amaRequestId);\r",
"\r",
"\r",
"var template = `\r",
"<script src=\"https://d3js.org/d3.v5.min.js\"></script>\r",
"<script src=\"https://unpkg.com/topojson@3\"></script>\r",
"<style>\r",
"body { \r",
" background-color: white;\r",
"}\r",
".title { \r",
" font-size: 30px;\r",
" font-family: \"Roboto\", sans-serif;\r",
" text-align: center;\r",
"}\r",
".container {\r",
" display: flex;\r",
" flex-direction: row;\r",
" justify-content: center;\r",
" align-items: center;\r",
"}\r",
".directions {\r",
" font-size: 18px;\r",
" font-family: \"Roboto\", sans-serif;\r",
" padding-left: 20px;\r",
"}\r",
"#backgroundRectangle {\r",
" width: 100%;\r",
" height: 100%;\r",
" fill: #f5f5f5;\r",
"}\r",
".projectionOutline{\r",
" fill: #2f434a;\r",
" stroke: #4e5f66\r",
"}\r",
".tooltip {\r",
" position: absolute;\r",
" font-size: 12px;\r",
" width: auto;\r",
" height: auto;\r",
" pointer-events: none;\r",
" background-color: white;\r",
" padding: 3px;\r",
"}\r",
"\r",
"</style>\r",
"<h1 class=\"title\"></h1>\r",
"<div class=\"container\">\r",
"<div id=\"map\"></div>\r",
"<p class=\"directions\">Draw mouse to zoom in onto section. Double click to zoom out</p>\r",
"</div>\r",
"<script>\r",
"\r",
" pm.getData( function(err, value) {\r",
" d3.select(\".title\").html(value.title);\r",
" initVisualization(value.data);\r",
" });\r",
"\r",
" // Function call that contains our visualization, necessary because we are loading an external map file\r",
" async function initVisualization(pmInput){\r",
" const response = await fetch(\"https://unpkg.com/world-atlas@1.1.4/world/110m.json\");\r",
" response.json().then( data => {\r",
" generateVisualization(pmInput, data);\r",
" });\r",
" }\r",
" \r",
" // Generates d3 map visualization using an external map file and user-inputed data\r",
" // Utilizes d3.zoom and d3.brush\r",
" function generateVisualization(pmInput, mapData){\r",
" // Set the dimensions and margins of the graph\r",
" const margins = {top: 20, left: 10, right: 20, bottom: 20};\r",
" const width = 800 - margins.top - margins.bottom;\r",
" const height = 500 - margins.left - margins.right;\r",
" \r",
" // Initializes d3.zoom to cover entire map SVG\r",
" const zoom = d3.zoom()\r",
" .scaleExtent([1,40])\r",
" .translateExtent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r",
" .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r",
" .on(\"zoom\", () =>{\r",
" d3.select(\"#map-group\").attr(\"transform\", d3.event.transform)\r",
" })\r",
" \r",
" // Initiaizes d3.brush to cover entire map SVG and zoom in on the selected window\r",
" let brush = d3.brush()\r",
" .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r",
" .on(\"end\", () => {\r",
" let extent = d3.event.selection;\r",
" if(extent){\r",
" d3.select(\"#map-group\").call(brush.move, null);\r",
" d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r",
" .scale( (width + margins.left + margins.right)/ (extent[1][0]-extent[0][0]) )\r",
" .translate( -extent[0][0], -extent[0][1] ));\r",
" d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r",
" .attr(\"r\", d => { return 2 * d.circleSize * (extent[1][0]-extent[0][0])/(width + margins.left + margins.right);} )\r",
" .attr(\"stroke-width\", (extent[1][0]-extent[0][0])/(width + margins.left + margins.right));\r",
" \r",
" }\r",
" else{\r",
" d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r",
" .scale( 1 )\r",
" .translate( 0,0 ));\r",
" d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r",
" .attr(\"r\", d => d.circleSize)\r",
" .attr(\"stroke-width\", 1);\r",
" }\r",
" });\r",
" \r",
" // Set the dimensions and margins of the graph\r",
" let svg = d3.select(\"#map\")\r",
" .append(\"svg\") \r",
" .attr(\"width\", width + margins.left + margins.right)\r",
" .attr(\"height\", height + margins.top + margins.bottom)\r",
" svg.append(\"rect\")\r",
" .attr(\"id\", \"backgroundRectangle\");\r",
" svg = svg.append(\"g\")\r",
" .attr(\"id\", \"map-group\")\r",
" .call(brush);\r",
" \r",
" // Draws Mercator projection of map onto SVG using the inputted map file\r",
" let projection = d3.geoMercator().translate([400, 350]).scale(125);\r",
" var mapGroup = svg.append(\"g\");\r",
" let mapPath = d3.geoPath().projection(projection);\r",
" mapGroup.selectAll(\"path\")\r",
" .data(topojson.feature(mapData, mapData.objects.countries).features)\r",
" .enter()\r",
" .append(\"path\")\r",
" .attr(\"d\", mapPath)\r",
" .attr(\"class\", \"projectionOutline\");\r",
" \r",
" // Calculate offset for tooltip\r",
" const rect = document.getElementById(\"map\").getBoundingClientRect();\r",
" const offset = {top: rect.top, left: rect.left};\r",
" \r",
" // Create hover tooltip\r",
" let tooltip = d3.select(\"#map\").append(\"div\")\r",
" .attr(\"class\", \"tooltip\");\r",
" // tooltip mouseover event handler\r",
" let tipMouseover = function(d){\r",
" tooltip.html(\"Name: <b>\" + d.name + \"</b><br/>Country: <b>\" + d.countr + \"</b><br/>IataCode: <b>\" + d.iataCode + \"</b><br/>Relevance: <b>\" + d.relevance + \"</b><br/>Longitude: <b>\" + d.long + \"</b><br/>Latitude: <b>\" + d.lat + \"</b>\")\r",
" .style(\"left\", (d3.event.pageX + 15 - offset.left) + \"px\")\r",
" .style(\"top\", (d3.event.pageY - 20 - offset.top) + \"px\")\r",
" .transition()\r",
" .duration(200) // ms\r",
" .style(\"opacity\", 0.9)\r",
" d3.select(this)\r",
" .style(\"stroke\", \"white\")\r",
" .style(\"opacity\", 1);\r",
" };\r",
" // tooltip mouseout event handler\r",
" let tipMouseout = function(d){\r",
" tooltip.transition()\r",
" .duration(300)\r",
" .style(\"opacity\", 0);\r",
" d3.select(this)\r",
" .style(\"stroke\", \"none\")\r",
" .style(\"opacity\", 0.6);\r",
" };\r",
" \r",
" // Appends points from user-inputted data onto map\r",
" svg.selectAll(\"circle\")\r",
" .data(pmInput)\r",
" .enter()\r",
" .append(\"circle\")\r",
" .attr(\"r\", 0)\r",
" .style(\"fill\", d => d.color)\r",
" .attr(\"cx\", d => projection([d.long, d.lat])[0])\r",
" .attr(\"cy\", d => projection([d.long, d.lat])[1])\r",
" .style(\"opacity\", 0.6)\r",
" .on(\"mouseover\", tipMouseover)\r",
" .on(\"mouseout\", tipMouseout)\r",
" .transition(d3.transition().duration(1000).ease(d3.easeQuadOut))\r",
" .attr(\"r\", d => d.circleSize)\r",
" }\r",
"</script>\r",
"`;\r",
"\r",
"var response = pm.response.json();\r",
"var query = pm.request.url.getQueryString();\r",
"let parsedData = [];\r",
"\r",
"//data parsing\r",
"for (let destination of response.data){\r",
" let tempEntry = {};\r",
" tempEntry.lat = destination.geoCode.latitude;\r",
" tempEntry.long = destination.geoCode.longitude;\r",
" tempEntry.circleSize = 2\r",
"// tempEntry.circleSize = Math.abs(Math.ceil(destination.analytics.travelers.score));\r",
" tempEntry.color = \"#EAFC39\";\r",
" tempEntry.name = destination.name;\r",
"\ttempEntry.countr = destination.address.countryName;\r",
" tempEntry.iataCode = destination.iataCode;\r",
" tempEntry.relevance = 0\r",
" if (destination.metrics && destination.metrics.relevance) {\r",
" tempEntry.relevance = destination.metrics.relevance;\r",
" }\r",
" parsedData.push(tempEntry);\r",
"}\r",
"\r",
"pm.visualizer.set(template, {\r",
" data: parsedData,\r",
" title: \"For \" + query +\" : Map of \" + response.meta.count + \" Destinations\"\r",
"});\r",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/airport/direct-destinations?departureAirportCode=MAD&max=2",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"airport",
"direct-destinations"
],
"query": [
{
"key": "departureAirportCode",
"value": "MAD",
"description": "Departure Airport code following IATA standard"
},
{
"key": "max",
"value": "2",
"description": "Maximum number of destination in the response."
}
]
},
"description": "The Amadeus Airport Routes API helps you find all destinations served by a given airport."
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Airlines",
"item": [
{
"name": "Flight Check-in Links",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v2/reference-data/urls/checkin-links?airlineCode=IB",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"reference-data",
"urls",
"checkin-links"
],
"query": [
{
"key": "airlineCode",
"value": "IB"
}
]
},
"description": "The Flight Check-in Links REST/JSON API helps simplify the check-in process for your users by providing direct access to the airline’s check-in page. The following search parameters are required:\n\n- Provider code: airline code\n- Check-in page language"
},
"response": []
},
{
"name": "Airline Code Lookup",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/airlines?airlineCodes=BA,AIC,AIE",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"airlines"
],
"query": [
{
"key": "airlineCodes",
"value": "BA,AIC,AIE"
}
]
},
"description": "This API returns the airline name and code."
},
"response": []
},
{
"name": "Airline Routes",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code\r",
"pm.test(\"Response status code is 200\", function () {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"\r",
"\r",
"// Function to get header value by name with fallback\r",
"function getHeaderValue(headerName, fallbackHeaderName) {\r",
" let headers = pm.response.headers;\r",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r",
"}\r",
"\r",
"// Log the specific headers\r",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));\r",
"\r",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r",
"console.log(headerName + \": \" + amaRequestId);\r",
"\r",
"\r",
"var template = `\r",
"<script src=\"https://d3js.org/d3.v5.min.js\"></script>\r",
"<script src=\"https://unpkg.com/topojson@3\"></script>\r",
"<style>\r",
"body { \r",
" background-color: white;\r",
"}\r",
".title { \r",
" font-size: 30px;\r",
" font-family: \"Roboto\", sans-serif;\r",
" text-align: center;\r",
"}\r",
".container {\r",
" display: flex;\r",
" flex-direction: row;\r",
" justify-content: center;\r",
" align-items: center;\r",
"}\r",
".directions {\r",
" font-size: 18px;\r",
" font-family: \"Roboto\", sans-serif;\r",
" padding-left: 20px;\r",
"}\r",
"#backgroundRectangle {\r",
" width: 100%;\r",
" height: 100%;\r",
" fill: #f5f5f5;\r",
"}\r",
".projectionOutline{\r",
" fill: #2f434a;\r",
" stroke: #4e5f66\r",
"}\r",
".tooltip {\r",
" position: absolute;\r",
" font-size: 12px;\r",
" width: auto;\r",
" height: auto;\r",
" pointer-events: none;\r",
" background-color: white;\r",
" padding: 3px;\r",
"}\r",
"\r",
"</style>\r",
"<h1 class=\"title\"></h1>\r",
"<div class=\"container\">\r",
"<div id=\"map\"></div>\r",
"<p class=\"directions\">Draw mouse to zoom in onto section. Double click to zoom out</p>\r",
"</div>\r",
"<script>\r",
"\r",
" pm.getData( function(err, value) {\r",
" d3.select(\".title\").html(value.title);\r",
" initVisualization(value.data);\r",
" });\r",
"\r",
" // Function call that contains our visualization, necessary because we are loading an external map file\r",
" async function initVisualization(pmInput){\r",
" const response = await fetch(\"https://unpkg.com/world-atlas@1.1.4/world/110m.json\");\r",
" response.json().then( data => {\r",
" generateVisualization(pmInput, data);\r",
" });\r",
" }\r",
" \r",
" // Generates d3 map visualization using an external map file and user-inputed data\r",
" // Utilizes d3.zoom and d3.brush\r",
" function generateVisualization(pmInput, mapData){\r",
" // Set the dimensions and margins of the graph\r",
" const margins = {top: 20, left: 10, right: 20, bottom: 20};\r",
" const width = 800 - margins.top - margins.bottom;\r",
" const height = 500 - margins.left - margins.right;\r",
" \r",
" // Initializes d3.zoom to cover entire map SVG\r",
" const zoom = d3.zoom()\r",
" .scaleExtent([1,40])\r",
" .translateExtent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r",
" .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r",
" .on(\"zoom\", () =>{\r",
" d3.select(\"#map-group\").attr(\"transform\", d3.event.transform)\r",
" })\r",
" \r",
" // Initiaizes d3.brush to cover entire map SVG and zoom in on the selected window\r",
" let brush = d3.brush()\r",
" .extent([[0,0],[width + margins.left + margins.right, height + margins.top + margins.bottom]])\r",
" .on(\"end\", () => {\r",
" let extent = d3.event.selection;\r",
" if(extent){\r",
" d3.select(\"#map-group\").call(brush.move, null);\r",
" d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r",
" .scale( (width + margins.left + margins.right)/ (extent[1][0]-extent[0][0]) )\r",
" .translate( -extent[0][0], -extent[0][1] ));\r",
" d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r",
" .attr(\"r\", d => { return 2 * d.circleSize * (extent[1][0]-extent[0][0])/(width + margins.left + margins.right);} )\r",
" .attr(\"stroke-width\", (extent[1][0]-extent[0][0])/(width + margins.left + margins.right));\r",
" \r",
" }\r",
" else{\r",
" d3.select(\"#map-group\").transition().duration(1500).call(zoom.transform, d3.zoomIdentity\r",
" .scale( 1 )\r",
" .translate( 0,0 ));\r",
" d3.selectAll(\"circle\").transition().delay(750).duration(1000)\r",
" .attr(\"r\", d => d.circleSize)\r",
" .attr(\"stroke-width\", 1);\r",
" }\r",
" });\r",
" \r",
" // Set the dimensions and margins of the graph\r",
" let svg = d3.select(\"#map\")\r",
" .append(\"svg\") \r",
" .attr(\"width\", width + margins.left + margins.right)\r",
" .attr(\"height\", height + margins.top + margins.bottom)\r",
" svg.append(\"rect\")\r",
" .attr(\"id\", \"backgroundRectangle\");\r",
" svg = svg.append(\"g\")\r",
" .attr(\"id\", \"map-group\")\r",
" .call(brush);\r",
" \r",
" // Draws Mercator projection of map onto SVG using the inputted map file\r",
" let projection = d3.geoMercator().translate([400, 350]).scale(125);\r",
" var mapGroup = svg.append(\"g\");\r",
" let mapPath = d3.geoPath().projection(projection);\r",
" mapGroup.selectAll(\"path\")\r",
" .data(topojson.feature(mapData, mapData.objects.countries).features)\r",
" .enter()\r",
" .append(\"path\")\r",
" .attr(\"d\", mapPath)\r",
" .attr(\"class\", \"projectionOutline\");\r",
" \r",
" // Calculate offset for tooltip\r",
" const rect = document.getElementById(\"map\").getBoundingClientRect();\r",
" const offset = {top: rect.top, left: rect.left};\r",
" \r",
" // Create hover tooltip\r",
" let tooltip = d3.select(\"#map\").append(\"div\")\r",
" .attr(\"class\", \"tooltip\");\r",
" // tooltip mouseover event handler\r",
" let tipMouseover = function(d){\r",
" tooltip.html(\"Name: <b>\" + d.name + \"</b><br/>Country: <b>\" + d.countr + \"</b><br/>IataCode: <b>\" + d.iataCode + \"</b><br/>Relevance: <b>\" + d.relevance + \"</b><br/>Longitude: <b>\" + d.long + \"</b><br/>Latitude: <b>\" + d.lat + \"</b>\")\r",
" .style(\"left\", (d3.event.pageX + 15 - offset.left) + \"px\")\r",
" .style(\"top\", (d3.event.pageY - 20 - offset.top) + \"px\")\r",
" .transition()\r",
" .duration(200) // ms\r",
" .style(\"opacity\", 0.9)\r",
" d3.select(this)\r",
" .style(\"stroke\", \"white\")\r",
" .style(\"opacity\", 1);\r",
" };\r",
" // tooltip mouseout event handler\r",
" let tipMouseout = function(d){\r",
" tooltip.transition()\r",
" .duration(300)\r",
" .style(\"opacity\", 0);\r",
" d3.select(this)\r",
" .style(\"stroke\", \"none\")\r",
" .style(\"opacity\", 0.6);\r",
" };\r",
" \r",
" // Appends points from user-inputted data onto map\r",
" svg.selectAll(\"circle\")\r",
" .data(pmInput)\r",
" .enter()\r",
" .append(\"circle\")\r",
" .attr(\"r\", 0)\r",
" .style(\"fill\", d => d.color)\r",
" .attr(\"cx\", d => projection([d.long, d.lat])[0])\r",
" .attr(\"cy\", d => projection([d.long, d.lat])[1])\r",
" .style(\"opacity\", 0.6)\r",
" .on(\"mouseover\", tipMouseover)\r",
" .on(\"mouseout\", tipMouseout)\r",
" .transition(d3.transition().duration(1000).ease(d3.easeQuadOut))\r",
" .attr(\"r\", d => d.circleSize)\r",
" }\r",
"</script>\r",
"`;\r",
"\r",
"var response = pm.response.json();\r",
"var query = pm.request.url.getQueryString();\r",
"let parsedData = [];\r",
"\r",
"//data parsing\r",
"for (let destination of response.data){\r",
" let tempEntry = {};\r",
" tempEntry.lat = destination.geoCode.latitude;\r",
" tempEntry.long = destination.geoCode.longitude;\r",
" tempEntry.circleSize = 2\r",
"// tempEntry.circleSize = Math.abs(Math.ceil(destination.analytics.travelers.score));\r",
" tempEntry.color = \"#EAFC39\";\r",
" tempEntry.name = destination.name;\r",
"\ttempEntry.countr = destination.address.countryName;\r",
" tempEntry.iataCode = destination.iataCode;\r",
" tempEntry.relevance = 0;\r",
" \r",
" if (destination.metrics && destination.metrics.relevance !== undefined) {\r",
" tempEntry.relevance = destination.metrics.relevance;\r",
" }\r",
" \r",
" parsedData.push(tempEntry);\r",
"}\r",
"\r",
"pm.visualizer.set(template, {\r",
" data: parsedData,\r",
" title: \"For \" + query +\" : Map of \" + response.meta.count + \" Destinations\"\r",
"});\r",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/airline/destinations?airlineCode=AF&max=2",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"airline",
"destinations"
],
"query": [
{
"key": "airlineCode",
"value": "AF",
"description": "Airline code following IATA standard"
},
{
"key": "max",
"value": "2",
"description": "Maximum number of destinations in the response.\n\n"
}
]
},
"description": "The Amadeus Airline Routes API helps you find all destinations served by a given airline. Provide the IATA code of an airline and the API will retrieve a list of all destination cities along with their names and IATA codes.\n\n**This API answers the question:**\n\n*\"What destinations are served by this airline?\"*"
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
}
],
"description": "This section contains APIs related with Air content: Search & Shopping, Travel Intelligence and Utilities.",
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{access_token}}",
"type": "string"
}
]
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Destination experiences",
"item": [
{
"name": "Tours and Activities",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or No response found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 404) {",
" pm.expect(data.errors[0].code).to.equal(1797);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
"",
"var template = `",
"<span style=\"font-weight: bold;\">Total number of tours & activities: {{response.meta.count}}</span>",
"<table>",
" {{#each response.data}}",
" <tr>",
" <td>Id: {{id}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Name</th>",
" <th>Price</th> ",
" <th>Book here</th> ",
" </tr>",
" <tr>",
" <td>{{name}}</td>",
" <td>{{price.amount}}</td>",
" <td>{{bookingLink}}</td>",
" </tr>",
" <table>",
" </tr>",
" {{/each}}",
"</table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/activities?latitude=41.397158&longitude=2.160873&radius=1",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"activities"
],
"query": [
{
"key": "latitude",
"value": "41.397158"
},
{
"key": "longitude",
"value": "2.160873"
},
{
"key": "radius",
"value": "1"
}
]
},
"description": "The Tours and Activities API helps you search and book activities, sightseeing tours, day trips and museum tickets in over 8,000 destinations around the world."
},
"response": []
},
{
"name": "Tours and Activities by Id",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or No response found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 404) {",
" pm.expect(data.errors[0].code).to.equal(1797);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
"",
"",
"var template = `",
"<table>",
" <tr>",
" <td>Id: {{response.data.id}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Name</th>",
" <th>Price</th>",
" <th>Book here</th> ",
" </tr>",
" <tr>",
" <td>{{response.data.name}}</td>",
" <td>{{response.data.price.amount}}</td>",
" <td>{{response.bookingLink}}</td>",
" </tr>",
" <table>",
" </tr>",
"</table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/activities/4615",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"activities",
"4615"
]
},
"description": "Returns a Tour or Activity given an Id."
},
"response": []
},
{
"name": "Tours and Activities by square",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or No response found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 404) {",
" pm.expect(data.errors[0].code).to.equal(1797);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
"",
"",
"var template = `",
"<span style=\"font-weight: bold;\">Total number of tours & activities: {{response.meta.count}}</span>",
"<table>",
" {{#each response.data}}",
" <tr>",
" <td>Id: {{id}}</td>",
" <tr bgcolor=\"#005EB8\" style=\"color: white;\">",
" <th>Name</th>",
" <th>Price</th> ",
" <th>Book here</th> ",
" </tr>",
" <tr>",
" <td>{{name}}</td>",
" <td>{{price.amount}}</td>",
" <td>{{bookingLink}}</td>",
" </tr>",
" <table>",
" </tr>",
" {{/each}}",
"</table>",
"`;",
"// Set visualizer",
"pm.visualizer.set(template, {",
" // Pass the response body parsed as JSON as `data`",
" response: pm.response.json()",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/activities/by-square?north=41.397158&west=2.160873&south=41.394582&east=2.177181",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"activities",
"by-square"
],
"query": [
{
"key": "north",
"value": "41.397158"
},
{
"key": "west",
"value": "2.160873"
},
{
"key": "south",
"value": "41.394582"
},
{
"key": "east",
"value": "2.177181"
}
]
},
"description": "Returns a Tour or Activity given an area."
},
"response": []
},
{
"name": "City Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/cities?countryCode=FR&keyword=PARIS&max=10&include=AIRPORTS",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"cities"
],
"query": [
{
"key": "countryCode",
"value": "FR"
},
{
"key": "keyword",
"value": "PARIS"
},
{
"key": "max",
"value": "10"
},
{
"key": "include",
"value": "AIRPORTS"
}
]
}
},
"response": []
}
],
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{access_token}}",
"type": "string"
}
]
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Car and Transfers",
"item": [
{
"name": "Transfer Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"startLocationCode\": \"CDG\",\n \"endAddressLine\": \"Avenue Anatole France, 5\",\n \"endCityName\": \"Paris\",\n \"endZipCode\": \"75007\",\n \"endCountryCode\": \"FR\",\n \"endName\": \"Souvenirs De La Tour\",\n \"endGeoCode\": \"48.859466,2.2976965\",\n \"transferType\": \"PRIVATE\",\n \"startDateTime\": \"{{startDateTime}}\",\n \"passengers\": 2,\n \"stopOvers\": [\n {\n \"duration\": \"PT2H30M\",\n \"sequenceNumber\": 1,\n \"addressLine\": \"Avenue de la Bourdonnais, 19\",\n \"countryCode\": \"FR\",\n \"cityName\": \"Paris\",\n \"zipCode\": \"75007\",\n \"name\": \"De La Tours\",\n \"geoCode\": \"48.859477,2.2976985\",\n \"stateCode\": \"FR\"\n }\n ],\n \"startConnectedSegment\": {\n \"transportationType\": \"FLIGHT\",\n \"transportationNumber\": \"AF380\",\n \"departure\": {\n \"localDateTime\": \"2025-07-10T09:00:00\",\n \"iataCode\": \"NCE\"\n },\n \"arrival\": {\n \"localDateTime\": \"2025-07-10T10:00:00\",\n \"iataCode\": \"CDG\"\n }\n },\n \"passengerCharacteristics\": [\n {\n \"passengerTypeCode\": \"ADT\",\n \"age\": 20\n },\n {\n \"passengerTypeCode\": \"CHD\",\n \"age\": 10\n }\n ]\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/shopping/transfer-offers",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"shopping",
"transfer-offers"
]
},
"description": "Handling booking confirmations from different providers can be tricky as there is no standard format used across the industry. The Trip Parser API makes it easy to extract information from different booking confirmation emails and compile it into a single structured JSON itinerary. The API can parse information from flight, hotel, rail and rental car confirmation mails. The API has three endpoints - the first creates a parsing request, the second checks the request status and the third retrieves the parsing results."
},
"response": []
},
{
"name": "Transfer Booking",
"event": [
{
"listen": "test",
"script": {
"exec": [
"let response = pm.response.json();",
"// Check for the presence of the 'errors' array",
"if (!response.errors) {",
" // Ensure the 'data' array exists and has at least one element",
" if (response.data && response.data.length > 0) {",
" // Check if the first element in the 'data' array is of type \"transfer-order\"",
" if (response.data[0].type === \"transfer-order\") {",
" // Set 'transferOrderId' variable",
" pm.collectionVariables.set(\"transferOrderId\", response.data[0].id);",
" // Set 'transferConfirmNbr' variable",
" pm.collectionVariables.set(\"transferConfirmNbr\", response.data[0].transfers.confirmNbr);",
" }",
" }",
"}",
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"note\": \"Note to driver\",\n \"passengers\": [\n {\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"title\": \"MR\",\n \"contacts\": {\n \"phoneNumber\": \"+33123456789\",\n \"email\": \"user@email.com\"\n },\n \"billingAddress\": {\n \"line\": \"Avenue de la Bourdonnais, 19\",\n \"zip\": \"75007\",\n \"countryCode\": \"FR\",\n \"cityName\": \"Paris\"\n }\n }\n ],\n \"agency\": {\n \"contacts\": [\n {\n \"email\": {\n \"address\": \"abc@test.com\"\n }\n }\n ]\n },\n \"payment\": {\n \"methodOfPayment\": \"CREDIT_CARD\",\n \"creditCard\": {\n \"number\": \"4111111111111111\",\n \"holderName\": \"JOHN DOE\",\n \"vendorCode\": \"VI\",\n \"expiryDate\": \"0928\",\n \"cvv\": \"111\"\n }\n },\n \"extraServices\": [\n {\n \"code\": \"EWT\",\n \"itemId\": \"EWT0291\"\n }\n ],\n \"equipment\": [\n {\n \"code\": \"BBS\"\n }\n ],\n \"corporation\": {\n \"address\": {\n \"line\": \"5 Avenue Anatole France\",\n \"zip\": \"75007\",\n \"countryCode\": \"FR\",\n \"cityName\": \"Paris\"\n },\n \"info\": {\n \"AU\": \"FHOWMD024\",\n \"CE\": \"280421GH\"\n }\n },\n \"startConnectedSegment\": {\n \"transportationType\": \"FLIGHT\",\n \"transportationNumber\": \"AF380\",\n \"departure\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n },\n \"arrival\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n }\n },\n \"endConnectedSegment\": {\n \"transportationType\": \"FLIGHT\",\n \"transportationNumber\": \"AF380\",\n \"departure\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n },\n \"arrival\": {\n \"uicCode\": \"7400001\",\n \"iataCode\": \"CDG\",\n \"localDateTime\": \"2023-03-27T20:03:00\"\n }\n }\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/ordering/transfer-orders?offerId={{transferOfferId}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"ordering",
"transfer-orders"
],
"query": [
{
"key": "offerId",
"value": "{{transferOfferId}}",
"description": "transfer offer id from shopping/transfer-offers response"
}
]
},
"description": "Handling booking confirmations from different providers can be tricky as there is no standard format used across the industry. The Trip Parser API makes it easy to extract information from different booking confirmation emails and compile it into a single structured JSON itinerary. The API can parse information from flight, hotel, rail and rental car confirmation mails. The API has three endpoints - the first creates a parsing request, the second checks the request status and the third retrieves the parsing results."
},
"response": []
},
{
"name": "Transfer Management",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "https://test.api.amadeus.com/v1/ordering/transfer-orders/{{transferOrderId}}/transfers/cancellation?confirmNbr={{transferConfirmNbr}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"ordering",
"transfer-orders",
"{{transferOrderId}}",
"transfers",
"cancellation"
],
"query": [
{
"key": "confirmNbr",
"value": "{{transferConfirmNbr}}",
"description": "transfer identifier - confirmation number from transfer supplier that identifies the ride"
}
]
},
"description": "Handling booking confirmations from different providers can be tricky as there is no standard format used across the industry. The Trip Parser API makes it easy to extract information from different booking confirmation emails and compile it into a single structured JSON itinerary. The API can parse information from flight, hotel, rail and rental car confirmation mails. The API has three endpoints - the first creates a parsing request, the second checks the request status and the third retrieves the parsing results."
},
"response": []
}
],
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{access_token}}",
"type": "string"
}
]
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Market insights",
"item": [
{
"name": "Flight Most Traveled Destinations",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code\r",
"pm.test(\"Response status code is 200\", function () {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// Function to get header value by name with fallback\r",
"function getHeaderValue(headerName, fallbackHeaderName) {\r",
" let headers = pm.response.headers;\r",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r",
"}\r",
"\r",
"// Log the specific headers\r",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));\r",
"\r",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r",
"console.log(headerName + \": \" + amaRequestId);\r",
"\r",
"\r",
"// Set up\r",
"// Get Response in variable\r",
"const response = pm.response.json();\r",
"\r",
"// Get Query in variable\r",
"let query = {};\r",
"pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r",
"\r",
"// Create global variable\r",
"let text_cities = \"\";\r",
"let text_travelerScore = \"\";\r",
"let text_flightScore = \"\";\r",
"let repetition = 0;\r",
"\r",
"// process calculation only for succeful reply\r",
"if (pm.response.status == \"OK\"){\r",
"\r",
" let cities = [];\r",
" let travelerScore = [];\r",
" let flightScore = [];\r",
"\r",
" repetition = Math.min(response.meta.count,5)\r",
"\r",
" // Get and order traffic data per month\r",
" for (let i = 0; i < repetition; i++) {\r",
" cities.push('\"' + response.data[i].destination + '\"');\r",
" travelerScore.push(response.data[i].analytics.travelers.score);\r",
" flightScore.push(response.data[i].analytics.flights.score);\r",
" };\r",
"\r",
" // Convert to text to be used by the template variable\r",
" text_cities = '[' + cities.join() + ']'\r",
" text_travelerScore = '[' + travelerScore.join() + ']'\r",
" text_flightScore = '[' + flightScore.join() + ']'\r",
"}\r",
"\r",
"// Define visualizer template\r",
"let template_success = `\r",
"<table style=\"width:50%\">\r",
" <tr>\r",
" <th>\r",
" <canvas id=\"travelerTraffic\"></canvas>\r",
" <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r",
" <script> \r",
" const labels = ${text_cities}; \r",
" const data = {\r",
" labels: labels, \r",
" datasets: [\r",
" { \r",
" label: \"Traveler score\", \r",
" backgroundColor: \"rgba(0, 94, 184,0.4)\", \r",
" borderColor: \"rgb(0, 94, 184)\", \r",
" data: ${text_travelerScore},\r",
" },\r",
" { \r",
" label: \"Flight score\", \r",
" backgroundColor: \"rgba(206, 0, 88,0.4)\", \r",
" borderColor: \"rgb(206, 0, 88)\", \r",
" data: ${text_flightScore},\r",
" }\r",
" ] \r",
" };\r",
" const config = { \r",
" type: \"radar\", \r",
" data: data, \r",
" options: {\r",
" responsive: true,\r",
" plugins: {\r",
" legend: {\r",
" position: 'top',\r",
" },\r",
" title: {\r",
" display: true,\r",
" text: 'TOP ${repetition} most traveled destination from ${query.originCityCode} in ${query.period}'\r",
" },\r",
" legend: {\r",
" display: true\r",
" },\r",
" filler: {\r",
" propagate: false\r",
" }\r",
" }\r",
" } \r",
" } \r",
" </script> \r",
" <script>\r",
" const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config ) \r",
" </script>\r",
" </th>\r",
" </tr>\r",
"</table>\r",
"`;\r",
"\r",
"let template_nodata = \"OUPS there is no data for this city or period\";\r",
"\r",
"let template_default = \"Sorry, we can't visualize\";\r",
"\r",
"// Set visualizer\r",
"if (pm.response.status == \"OK\"){\r",
" if (response.meta.count > 0){\r",
" // When there is data, return a bar graph\r",
" pm.visualizer.set(template_success, {\r",
" response: pm.response.json()\r",
" });\r",
" }else{\r",
" // when there is no data, return a message\r",
" pm.visualizer.set(template_nodata, {\r",
" response: pm.response.json()\r",
" });\r",
" }\r",
"}else{\r",
" // return a message when we can't visualise ( status =! 200 )\r",
" pm.visualizer.set(template_default, {\r",
" response: pm.response.json()\r",
" });\r",
"}"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/travel/analytics/air-traffic/traveled?originCityCode=MAD&period=2019-11&sort=analytics.travelers.score&max=10",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"travel",
"analytics",
"air-traffic",
"traveled"
],
"query": [
{
"key": "originCityCode",
"value": "MAD"
},
{
"key": "period",
"value": "2019-11"
},
{
"key": "sort",
"value": "analytics.travelers.score"
},
{
"key": "max",
"value": "10"
}
]
},
"description": "The Flight Most Traveled Destinations REST/JSON API provides a list of the most popular flight destinations from a given origin during a specific period. This can help answer questions like \"Where are most people flying to from Paris during the month of September?\""
},
"response": []
},
{
"name": "Flight Most Booked Destinations",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code\r",
"pm.test(\"Response status code is 200\", function () {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"\r",
"// Function to get header value by name with fallback\r",
"function getHeaderValue(headerName, fallbackHeaderName) {\r",
" let headers = pm.response.headers;\r",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r",
"}\r",
"\r",
"// Log the specific headers\r",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));\r",
"\r",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r",
"console.log(headerName + \": \" + amaRequestId);\r",
"\r",
"// Set up\r",
"// Get Response in variable\r",
"const response = pm.response.json();\r",
"\r",
"// Get Query in variable\r",
"let query = {};\r",
"pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r",
"\r",
"// Create global variable\r",
"let text_cities = \"\";\r",
"let text_travelerScore = \"\";\r",
"let text_flightScore = \"\";\r",
"let repetition = 0;\r",
"\r",
"// process calculation only for succeful reply\r",
"if (pm.response.status == \"OK\"){\r",
"\r",
" let cities = [];\r",
" let travelerScore = [];\r",
" let flightScore = [];\r",
"\r",
" repetition = Math.min(response.meta.count,5)\r",
"\r",
" // Get and order traffic data per month\r",
" for (let i = 0; i < repetition; i++) {\r",
" cities.push('\"' + response.data[i].destination + '\"');\r",
" travelerScore.push(response.data[i].analytics.travelers.score);\r",
" flightScore.push(response.data[i].analytics.flights.score);\r",
" };\r",
"\r",
" // Convert to text to be used by the template variable\r",
" text_cities = '[' + cities.join() + ']'\r",
" text_travelerScore = '[' + travelerScore.join() + ']'\r",
" text_flightScore = '[' + flightScore.join() + ']'\r",
"}\r",
"\r",
"// Define visualizer template\r",
"let template_success = `\r",
"<table style=\"width:40%\">\r",
" <tr>\r",
" <th>\r",
" <canvas id=\"travelerTraffic\"></canvas>\r",
" <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r",
" <script> \r",
" const labels = ${text_cities}; \r",
" const data = {\r",
" labels: labels, \r",
" datasets: [\r",
" { \r",
" label: \"Traveler score\", \r",
" backgroundColor: \"rgba(0, 94, 184,0.4)\", \r",
" borderColor: \"rgb(0, 94, 184)\", \r",
" data: ${text_travelerScore},\r",
" },\r",
" { \r",
" label: \"Flight score\", \r",
" backgroundColor: \"rgba(206, 0, 88,0.4)\", \r",
" borderColor: \"rgb(206, 0, 88)\", \r",
" data: ${text_flightScore},\r",
" }\r",
" ] \r",
" };\r",
" const config = { \r",
" type: \"radar\", \r",
" data: data, \r",
" options: {\r",
" responsive: true,\r",
" plugins: {\r",
" legend: {\r",
" position: 'top',\r",
" },\r",
" title: {\r",
" display: true,\r",
" text: 'TOP ${repetition} most booked destination from ${query.originCityCode} in ${query.period}'\r",
" },\r",
" legend: {\r",
" display: true\r",
" }\r",
" }\r",
" } \r",
" } \r",
" </script> \r",
" <script>\r",
" const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config ) \r",
" </script>\r",
" </th>\r",
" </tr>\r",
"</table>\r",
"`;\r",
"\r",
"let template_nodata = \"OUPS there is no data for this city or period\";\r",
"\r",
"let template_default = \"Sorry, we can't visualize\";\r",
"\r",
"// Set visualizer\r",
"if (pm.response.status == \"OK\"){\r",
" if (response.meta.count > 0){\r",
" // When there is data, return a bar graph\r",
" pm.visualizer.set(template_success, {\r",
" response: pm.response.json()\r",
" });\r",
" }else{\r",
" // when there is no data, return a message\r",
" pm.visualizer.set(template_nodata, {\r",
" response: pm.response.json()\r",
" });\r",
" }\r",
"}else{\r",
" // return a message when we can't visualise ( status =! 200 )\r",
" pm.visualizer.set(template_default, {\r",
" response: pm.response.json()\r",
" });\r",
"}"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/travel/analytics/air-traffic/booked?originCityCode=NCE&period=2017-11",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"travel",
"analytics",
"air-traffic",
"booked"
],
"query": [
{
"key": "originCityCode",
"value": "NCE"
},
{
"key": "period",
"value": "2017-11"
}
]
},
"description": "The Flight Most Booked Destinations REST / JSON API allows to find the most popular flight destinations from an origin during a flight period. This can help answer questions like \"Where are most people from Paris, in September, plan to go?\""
},
"response": []
},
{
"name": "Flight Busiest Traveling Period",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code\r",
"pm.test(\"Response status code is 200\", function () {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"\r",
"// Function to get header value by name with fallback\r",
"function getHeaderValue(headerName, fallbackHeaderName) {\r",
" let headers = pm.response.headers;\r",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';\r",
"}\r",
"\r",
"// Log the specific headers\r",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));\r",
"\r",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');\r",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');\r",
"console.log(headerName + \": \" + amaRequestId);\r",
"\r",
"// Set up\r",
"// Get Response in variable\r",
"const response = pm.response.json();\r",
"\r",
"// Get Query in variable\r",
"let query = {};\r",
"pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});\r",
"\r",
"// Create global variable\r",
"let text_TrafficPerMonth = \"\";\r",
"let max_scale = 0;\r",
"\r",
"\r",
"// process calculation only for succeful reply\r",
"if (pm.response.status == \"OK\"){\r",
"\r",
" // Set all traffic to 0 to handle ongoing years or partial data\r",
" let TrafficPerMonth = [];\r",
" for (let i=0; i < 12; i++) {\r",
" TrafficPerMonth.push(0)\r",
" };\r",
"\r",
" // Get and order traffic data per month\r",
" for (let i = 0; i < response.meta.count; i++) {\r",
" period = response.data[i].period;\r",
" month = parseInt(period.slice(-2)) - 1;\r",
" traffic = response.data[i].analytics.travelers.score;\r",
" TrafficPerMonth[month] = traffic;\r",
" };\r",
"\r",
" // Convert to text to be used by the template variable\r",
" text_TrafficPerMonth = '[' + TrafficPerMonth.join() + ']'\r",
" max_scale = Math.max(...TrafficPerMonth) + 2\r",
"}\r",
"\r",
"// Define visualizer template\r",
"let template_success = `\r",
"<table style=\"width:50%\">\r",
" <tr>\r",
" <th>\r",
" <canvas id=\"travelerTraffic\"></canvas>\r",
" <script src=\"https://cdn.jsdelivr.net/npm/chart.js\"></script>\r",
" <script src=\"https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2\"></script>\r",
" <script> \r",
" const labels = [\r",
" \"January\",\r",
" \"February\", \r",
" \"March\", \r",
" \"April\", \r",
" \"May\", \r",
" \"June\", \r",
" \"July\", \r",
" \"August\", \r",
" \"September\", \r",
" \"October\", \r",
" \"November\", \r",
" \"December\"\r",
" ]; \r",
" const data = {\r",
" labels: labels, \r",
" datasets: [\r",
" { \r",
" label: \"Traveler score\", \r",
" backgroundColor: \"rgba(0, 94, 184,0.4)\", \r",
" borderColor: \"rgb(0, 94, 184)\", \r",
" data: ${text_TrafficPerMonth},\r",
" borderWidth: 2,\r",
" borderRadius: 20,\r",
" borderSkipped: false, \r",
" }\r",
" ] \r",
" };\r",
" const config = { \r",
" type: \"bar\", \r",
" data: data,\r",
" plugins: [ChartDataLabels], \r",
" options: {\r",
" responsive: true,\r",
" plugins: {\r",
" legend: {\r",
" position: 'top',\r",
" display: false\r",
" },\r",
" title: {\r",
" display: true,\r",
" text: 'Traveler repartition for ${query.cityCode} in ${query.period}'\r",
" },\r",
" datalabels: {\r",
" color: \"rgb(0, 94, 184)\",\r",
" anchor: 'end',\r",
" align: 'end',\r",
" }\r",
" },\r",
" scales: {\r",
" y: {\r",
" min: 0,\r",
" max: ${max_scale},\r",
" }\r",
" },\r",
" } \r",
" } \r",
" </script> \r",
" <script>\r",
" const myChart = new Chart( document.getElementById(\"travelerTraffic\"), config )\r",
" </script\r",
" </th>\r",
" </tr>\r",
"</table>\r",
"`;\r",
"\r",
"let template_nodata = \"OUPS there is no data for this city or period\";\r",
"\r",
"let template_default = \"Sorry, we can't visualize\";\r",
"\r",
"// Set visualizer\r",
"if (pm.response.status == \"OK\"){\r",
" if (response.meta.count > 0){\r",
" // When there is data, return a bar graph\r",
" pm.visualizer.set(template_success, {\r",
" response: pm.response.json()\r",
" });\r",
" }else{\r",
" // when there is no data, return a message\r",
" pm.visualizer.set(template_nodata, {\r",
" response: pm.response.json()\r",
" });\r",
" }\r",
"}else{\r",
" // return a message when we can't visualise ( status =! 200 )\r",
" pm.visualizer.set(template_default, {\r",
" response: pm.response.json()\r",
" });\r",
"}"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/travel/analytics/air-traffic/busiest-period?cityCode=PAR&period=2017&direction=ARRIVING",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"travel",
"analytics",
"air-traffic",
"busiest-period"
],
"query": [
{
"key": "cityCode",
"value": "PAR"
},
{
"key": "period",
"value": "2017"
},
{
"key": "direction",
"value": "ARRIVING"
}
]
},
"description": "The Flight Busiest Traveling Period REST / JSON API allows to find the peak and off-peak travel period for a given city. This can help answer questions like \"When is it the cheapest to go to New York?\""
},
"response": []
}
],
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{access_token}}",
"type": "string"
}
]
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "Hotels",
"item": [
{
"name": "(Scenario)Basic Hotel Booking flow",
"item": [
{
"name": "Step 0: Authorization",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var data = pm.response.json();",
"pm.environment.set(\"access_token\", data.access_token);"
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "noauth"
},
"method": "POST",
"header": [],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "client_id",
"value": "{{client_id}}",
"type": "text"
},
{
"key": "client_secret",
"value": "{{client_secret}}",
"type": "text"
},
{
"key": "grant_type",
"value": "client_credentials",
"type": "text"
}
]
},
"url": {
"raw": "https://test.api.amadeus.com/v1/security/oauth2/token",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"security",
"oauth2",
"token"
]
},
"description": "To request an access token you need to send a POST request with the following body parameters to the authorization server: \n- \"grant_type\" with the value \"client_credentials\"\n- \"client_id\" with your API Key.\n- \"client_secret\" with your API Secret."
},
"response": []
},
{
"name": "Step 1: Find Hotels by city",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// extract 'hotelIds' environment variable for first 10 hotels results",
"",
"let response = pm.response.json();",
"var hotelIds = [];",
"i = 0",
"for (var i = 0; i < 5; i ++){",
" hotelIds.push(response.data[i].hotelId);",
"}",
"pm.collectionVariables.set(\"hotelIds\", hotelIds);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-city?cityCode=DEL",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"hotels",
"by-city"
],
"query": [
{
"key": "radius",
"value": "5",
"description": "Maximum distance from the geographical coordinates express in defined units. The default radius is 5 KM.",
"disabled": true
},
{
"key": "radiusUnit",
"value": "KM",
"description": "Unit of measurement used to express the radius. It can be either metric kilometer or imperial mile.",
"disabled": true
},
{
"key": "chainCodes",
"value": "",
"description": "Array of hotel chain codes. Each code is a string consisted of 2 capital alphabetic characters.",
"disabled": true
},
{
"key": "amenities",
"value": "",
"description": "List of amenities",
"disabled": true
},
{
"key": "ratings",
"value": "",
"description": "Hotel stars. Up to four values can be requested at the same time in a comma separated list.",
"disabled": true
},
{
"key": "hotelSource",
"value": "ALL",
"description": "Hotel source with values BEDBANK for aggregators, DIRECTCHAIN for GDS/Distribution and ALL for both",
"disabled": true
},
{
"key": "cityCode",
"value": "DEL"
}
]
}
},
"response": []
},
{
"name": "Step 2: Hotel Offers Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or property code not found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" pm.collectionVariables.set(\"hotelOfferId\", pm.response.json().data[0].offers[0].id);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].code).to.be.oneOf([3237, 3664, 10604, 3494, 1257]);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v3/shopping/hotel-offers?hotelIds={{hotelIds}}&adults=1",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v3",
"shopping",
"hotel-offers"
],
"query": [
{
"key": "hotelIds",
"value": "{{hotelIds}}"
},
{
"key": "adults",
"value": "1"
}
]
},
"description": "Search for hotels and retrieve availability and rates information"
},
"response": []
},
{
"name": "Step 3: Hotel Booking v1",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"offerId\": \"{{hotelOfferId}}\",\n \"guests\": [\n {\n \"id\": 1,\n \"name\": {\n \"title\": \"MR\",\n \"firstName\": \"BOB\",\n \"lastName\": \"SMITH\"\n },\n \"contact\": {\n \"phone\": \"+33679278416\",\n \"email\": \"bob.smith@email.com\"\n }\n }\n ],\n \"payments\": [\n {\n \"id\": 1,\n \"method\": \"creditCard\",\n \"card\": {\n \"vendorCode\": \"VI\",\n \"cardNumber\": \"4151289722471370\",\n \"expiryDate\": \"2023-08\"\n }\n }\n ],\n \"rooms\": [\n {\n \"guestIds\": [\n 1\n ],\n \"paymentId\": 1,\n \"specialRequest\": \"I will arrive at midnight\"\n }\n ]\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/hotel-bookings",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"hotel-bookings"
]
},
"description": "The Hotel Booking REST/JSON API is an open API that allows you to book the best hotel offers you have searched from a wide choice of providers."
},
"response": []
}
]
},
{
"name": "Hotel List by Id",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or PROPERTY CODE NOT FOUND\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].code).to.equal(3237);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-hotels?hotelIds={{hotelIds}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"hotels",
"by-hotels"
],
"query": [
{
"key": "hotelIds",
"value": "{{hotelIds}}",
"description": "Amadeus unique hotel code. Several hotelId can be entered using a coma."
}
]
}
},
"response": []
},
{
"name": "Hotel List by Geocode",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-geocode?latitude=41.397158&longitude=2.160873",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"hotels",
"by-geocode"
],
"query": [
{
"key": "latitude",
"value": "41.397158",
"description": "The latitude of the searched geographical point expressed in geometric degrees."
},
{
"key": "longitude",
"value": "2.160873",
"description": "The longitude of the searched geographical point expressed in geometric degrees."
},
{
"key": "radius",
"value": "5",
"description": "Maximum distance from the geographical coordinates expressed in defined units. The default value is 5 KM.",
"disabled": true
},
{
"key": "radiusUnit",
"value": "KM",
"description": "Unit of measurement used to express the radius. It can be either metric kilometer or imperial mile.",
"disabled": true
},
{
"key": "chainCodes",
"value": "",
"description": "Array of hotel chain codes. Each code is a string consisted of 2 capital alphabetic characters",
"disabled": true
},
{
"key": "amenities",
"value": "",
"description": "List of amenities.\n\n",
"disabled": true
},
{
"key": "ratings",
"value": "",
"description": "Hotel stars. Up to four values can be requested at the same time in a comma separated list.\n\n",
"disabled": true
},
{
"key": "hotelSource",
"value": "ALL",
"description": "Hotel source with values BEDBANK for aggregators, DIRECTCHAIN for GDS/Distribution and ALL for both.\n\n",
"disabled": true
}
]
}
},
"response": []
},
{
"name": "Hotel List by City",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
"",
"",
"// extract 'hotelIds_response' environment variable for first 5 hotels results",
"let response = pm.response.json();",
"var hotelIds = [];",
"i = 0",
"for (var i = 0; i < 5; i ++){",
" hotelIds.push(response.data[i].hotelId);",
"}",
"pm.collectionVariables.set(\"hotelIds\", hotelIds);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotels/by-city?cityCode=BLR",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"hotels",
"by-city"
],
"query": [
{
"key": "radius",
"value": "5",
"description": "Maximum distance from the geographical coordinates express in defined units. The default radius is 5 KM.",
"disabled": true
},
{
"key": "radiusUnit",
"value": "KM",
"description": "Unit of measurement used to express the radius. It can be either metric kilometer or imperial mile.",
"disabled": true
},
{
"key": "chainCodes",
"value": "",
"description": "Array of hotel chain codes. Each code is a string consisted of 2 capital alphabetic characters.",
"disabled": true
},
{
"key": "amenities",
"value": "",
"description": "List of amenities",
"disabled": true
},
{
"key": "ratings",
"value": "",
"description": "Hotel stars. Up to four values can be requested at the same time in a comma separated list.",
"disabled": true
},
{
"key": "hotelSource",
"value": "ALL",
"description": "Hotel source with values BEDBANK for aggregators, DIRECTCHAIN for GDS/Distribution and ALL for both",
"disabled": true
},
{
"key": "cityCode",
"value": "BLR"
}
]
}
},
"response": []
},
{
"name": "Hotel Search",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or property code not found\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" pm.collectionVariables.set(\"hotelOfferId\", pm.response.json().data[0].offers[0].id);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].code).to.be.oneOf([3237, 3664, 10604, 3494, 1257]);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v3/shopping/hotel-offers?hotelIds={{hotelIds}}&adults=1",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v3",
"shopping",
"hotel-offers"
],
"query": [
{
"key": "hotelIds",
"value": "{{hotelIds}}"
},
{
"key": "adults",
"value": "1"
}
]
},
"description": "Search for hotels and retrieve availability and rates information"
},
"response": []
},
{
"name": "Hotel Search Offer Information",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or invalid format\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" var request = pm.request;",
"",
" if (responseCode === 200) {",
" pm.expect(responseCode).to.equal(200);",
" } else if (responseCode === 400) {",
" pm.expect(data.errors[0].code).to.be.oneOf([477,12416]);",
" // Add more validations for other properties as needed",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v3/shopping/hotel-offers/{{hotelOfferId}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v3",
"shopping",
"hotel-offers",
"{{hotelOfferId}}"
]
},
"description": "Get room and rate details."
},
"response": []
},
{
"name": "Hotel Booking v1",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or 201\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200 || responseCode === 201) {",
" pm.expect(responseCode).to.be.oneOf([200, 201]);",
" // Add any other checks you need for a successful response here",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"name": "Content-Type",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"offerId\": \"{{hotelOfferId}}\",\n \"guests\": [\n {\n \"id\": 1,\n \"name\": {\n \"title\": \"MR\",\n \"firstName\": \"BOB\",\n \"lastName\": \"SMITH\"\n },\n \"contact\": {\n \"phone\": \"+33679278416\",\n \"email\": \"bob.smith@email.com\"\n }\n }\n ],\n \"payments\": [\n {\n \"id\": 1,\n \"method\": \"creditCard\",\n \"card\": {\n \"vendorCode\": \"VI\",\n \"cardNumber\": \"4111111111111111\",\n \"expiryDate\": \"2026-08\"\n }\n }\n ],\n \"rooms\": [\n {\n \"guestIds\": [\n 1\n ],\n \"paymentId\": 1,\n \"specialRequest\": \"I will arrive at midnight\"\n }\n ]\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v1/booking/hotel-bookings",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"booking",
"hotel-bookings"
]
},
"description": "The Hotel Booking REST/JSON API is an open API that allows you to book the best hotel offers you have searched from a wide choice of providers."
},
"response": []
},
{
"name": "Hotel Booking v2",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200 or 201\", function () {",
" var responseCode = pm.response.code;",
" var data = pm.response.json();",
" if (responseCode === 200 || responseCode === 201) {",
" pm.expect(responseCode).to.be.oneOf([200, 201]);",
" pm.collectionVariables.set(\"hotelOrderId\", data.data.id);",
" var hotelBookings = data.data.hotelBookings;",
" for (var i = 0; i < hotelBookings.length; i++) {",
" pm.collectionVariables.set(\"hotelBookingId\" + (i + 1), hotelBookings[i].id);",
" }",
" // Add any other checks you need for a successful response here",
" } else {",
" pm.expect.fail(\"Response did not meet any of the expected conditions\");",
" }",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"data\": {\n \"type\": \"hotel-order\",\n \"guests\": [\n {\n \"tid\": 1,\n \"title\": \"MR\",\n \"firstName\": \"BOB\",\n \"lastName\": \"SMITH\",\n \"phone\": \"+33679278416\",\n \"email\": \"bob.smith@email.com\"\n }\n ],\n \"travelAgent\": {\n \"contact\": {\n \"email\": \"bob.smith@email.com\"\n }\n },\n \"roomAssociations\": [\n {\n \"guestReferences\": [\n {\n \"guestReference\": \"1\"\n }\n ],\n \"hotelOfferId\": \"{{hotelOfferId}}\"\n }\n ],\n \"payment\": {\n \"method\": \"CREDIT_CARD\",\n \"paymentCard\": {\n \"paymentCardInfo\": {\n \"vendorCode\": \"VI\",\n \"cardNumber\": \"4151289722471370\",\n \"expiryDate\": \"2026-08\",\n \"holderName\": \"BOB SMITH\"\n }\n }\n }\n }\n}"
},
"url": {
"raw": "https://test.api.amadeus.com/v2/booking/hotel-orders",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"booking",
"hotel-orders"
]
},
"description": "The Hotel Booking REST/JSON API is an open API that allows you to book the best hotel offers you have searched from a wide choice of providers."
},
"response": []
},
{
"name": "Hotel Ratings ",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v2/e-reputation/hotel-sentiments?hotelIds=ELONMFS,ADNYCCTB,XXXYYY01",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v2",
"e-reputation",
"hotel-sentiments"
],
"query": [
{
"key": "hotelIds",
"value": "ELONMFS,ADNYCCTB,XXXYYY01"
}
]
},
"description": "This API provides hotel ratings based on automated sentiment analysis algorithm applied on the online reviews"
},
"response": []
},
{
"name": "Hotel Name Autocomplete",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/reference-data/locations/hotel?keyword=PARI&subType=HOTEL_LEISURE",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"reference-data",
"locations",
"hotel"
],
"query": [
{
"key": "keyword",
"value": "PARI"
},
{
"key": "subType",
"value": "HOTEL_LEISURE"
}
]
},
"description": "The Hotel Name Autocomplete API enables you to autocomplete a hotel search field and help your users quickly find their desired hotel. For a given text string, the API will provide a list of up to 20 hotels whose names most closely match."
},
"response": []
}
],
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{access_token}}",
"type": "string"
}
]
}
},
{
"name": "Itinerary management",
"item": [
{
"name": "Trip Purpose Prediction",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Test for status code",
"pm.test(\"Response status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"",
"// Function to get header value by name with fallback",
"function getHeaderValue(headerName, fallbackHeaderName) {",
" let headers = pm.response.headers;",
" return headers.get(headerName) || headers.get(fallbackHeaderName) || 'Header not found';",
"}",
"",
"// Log the specific headers",
"console.log(\"Timestamp: \" + getHeaderValue('Date'));",
"",
"let amaRequestId = getHeaderValue('Ama-Request-Id', 'Ama-Gateway-Request-Id');",
"let headerName = pm.response.headers.get('Ama-Request-Id') ? 'Ama-Request-Id' : (pm.response.headers.get('Ama-Gateway-Request-Id') ? 'Ama-Gateway-Request-Id' : 'Header not found');",
"console.log(headerName + \": \" + amaRequestId);",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "https://test.api.amadeus.com/v1/travel/predictions/trip-purpose?originLocationCode=LON&destinationLocationCode=AMS&departureDate={{departureDate}}&returnDate={{returnDate}}",
"protocol": "https",
"host": [
"test",
"api",
"amadeus",
"com"
],
"path": [
"v1",
"travel",
"predictions",
"trip-purpose"
],
"query": [
{
"key": "originLocationCode",
"value": "LON"
},
{
"key": "destinationLocationCode",
"value": "AMS"
},
{
"key": "departureDate",
"value": "{{departureDate}}"
},
{
"key": "returnDate",
"value": "{{returnDate}}"
}
]
},
"description": "It allows developers to forecast traveler purpose, Business or Leisure, together with the probability in the context of search & shopping."
},
"response": []
}
],
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{access_token}}",
"type": "string"
}
]
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
],
"variable": [
{
"key": "url",
"value": "https://test.api.amadeus.com"
},
{
"key": "todayDate",
"value": ""
},
{
"key": "departureDate",
"value": ""
},
{
"key": "returnDate",
"value": ""
},
{
"key": "flightOfferData",
"value": ""
},
{
"key": "flightOfferPriceData",
"value": ""
},
{
"key": "flightOrderId",
"value": ""
},
{
"key": "todayDateTime",
"value": ""
},
{
"key": "startDateTime",
"value": ""
},
{
"key": "transferOfferId",
"value": ""
},
{
"key": "hotelIds",
"value": ""
},
{
"key": "hotelOfferId",
"value": ""
},
{
"key": "hotelOrderId",
"value": ""
},
{
"key": "hotelBookingId1",
"value": ""
},
{
"key": "hotelBookingId2",
"value": ""
},
{
"key": "jobId",
"value": ""
}
]
}